mysql 树形结构查询(存储过程)

你走之后earth

你走之后earth

2016-02-19 19:51

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享mysql 树形结构查询(存储过程)吧。

  就用数据数据库表地址数据(中国地区) 来说吧(用Windows 请使用 gbk !!)

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  可直接运行(去除注解)

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  存储过程:

DELIMITER//
dropprocedureifexists findLChild//
/*iid递归父节点,layer允许递归深度*/
CREATEPROCEDUREfindLChild(iidbigint(20),layerbigint(20))
 BEGIN
  /*创建接受查询的临时表*/
  createtemporary tableifnotexiststmp_table(idbigint(20),namevarchar(50))ENGINE=InnoDBDEFAULTCHARSET=utf8;
  /*最高允许递归数*/
  SET@@max_sp_recursion_depth=99;
  calliterative(iid,layer);/*核心数据收集*/
  select*fromtmp_table;/*展现*/
  droptemporary tableif exists tmp_table;/*删除临时表*/
  END;//
DELIMITER;
DELIMITER//
dropprocedureifexists iterative//
CREATEPROCEDUREiterative(iidbigint(20),layerbigint(20))
  BEGIN
    declaretidbigint(20)default-1;
    declaretnamevarchar(50)charactersetutf8;
    /*游标定义*/
    declarecur1CURSORFORselectid,namefromlocationwherefid=iid;
    declareCONTINUEHANDLERFORSQLSTATE'02000'SETtid=null;
   
   /*允许递归深度*/
   iflayer0then
    OPENcur1;
    FETCHcur1INTOtid,tname;
     WHILE(tidisnotnull)
      DO
       /*核心数据收集*/
     insertintotmp_tablevalues(tid,tname);
       calliterative(tid,layer-1);
       FETCHcur1INTOtid,tname;
     ENDWHILE;
   endif;
  END;//
DELIMITER;

  //运行!!

mysql call findLChild(1,1);
+------+------------------+
| id  | name       |
+------+------------------+
|  2 | 北京       |
|  4 | 上海       |
|  6 | 香港特别行政区  |
|  8 | 澳门特别行政区  |
|  10 | 河北       |
|  23 | 山西       |
|  35 | 辽宁       |
|  50 | 吉林       |
|  60 | 黑龙江      |
|  74 | 江苏       |
|  88 | 浙江       |
| 101 | 安徽       |
| 119 | 福建       |
| 129 | 江西       |
| 142 | 山东       |
| 160 | 河南       |
| 179 | 湖北       |
| 198 | 湖南       |
| 213 | 广东       |
| 235 | 甘肃       |
| 250 | 四川       |
| 272 | 贵州       |
| 282 | 海南       |
| 301 | 云南       |
| 318 | 青海       |
| 327 | 陕西       |
| 348 | 广西壮族自治区  |
| 363 | 西藏自治区    |
| 371 | 宁夏回族自治区  |
| 377 | 新疆维吾尔自治区 |
| 400 | 内蒙古自治区   |
| 413 | 台湾省      |
+------+------------------+
32 rows in set (0.02 sec)

展开更多 50%)
分享

猜你喜欢

mysql 树形结构查询(存储过程)

编程语言 网络编程
mysql 树形结构查询(存储过程)

mysql 教程 存储过程

编程语言 网络编程
mysql 教程 存储过程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

mysql 存储过程的问题

编程语言 网络编程
mysql 存储过程的问题

复制表结构的通用存储过程

SQLServer
复制表结构的通用存储过程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

mysql 动态执行存储过程语句

编程语言 网络编程
mysql 动态执行存储过程语句

MySQL5新特点(存储过程)

编程语言 网络编程
MySQL5新特点(存储过程)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

.NET 中部分常用的CSS

.NET 中部分常用的CSS

CSS Alpha透明代码相关知识学习

CSS Alpha透明代码相关知识学习
下拉加载更多内容 ↓