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

可直接运行(去除注解)

存储过程:

  1. DELIMITER//
  2. dropprocedureifexistsfindLChild//
  3. /*iid递归父节点,layer允许递归深度*/
  4. CREATEPROCEDUREfindLChild(iidbigint(20),layerbigint(20))
  5. BEGIN
  6. /*创建接受查询的临时表*/
  7. createtemporarytableifnotexiststmp_table(idbigint(20),namevarchar(50))ENGINE=InnoDBDEFAULTCHARSET=utf8;
  8. /*最高允许递归数*/
  9. SET@@max_sp_recursion_depth=99;
  10. calliterative(iid,layer);/*核心数据收集*/
  11. select*fromtmp_table;/*展现*/
  12. droptemporarytableifexiststmp_table;/*删除临时表*/
  13. END;//
  14. DELIMITER;
  15. DELIMITER//
  16. dropprocedureifexistsiterative//
  17. CREATEPROCEDUREiterative(iidbigint(20),layerbigint(20))
  18. BEGIN
  19. declaretidbigint(20)default-1;
  20. declaretnamevarchar(50)charactersetutf8;
  21. /*游标定义*/
  22. declarecur1CURSORFORselectid,namefromlocationwherefid=iid;
  23. declareCONTINUEHANDLERFORSQLSTATE'02000'SETtid=null;
  24. /*允许递归深度*/
  25. iflayer>0then
  26. OPENcur1;
  27. FETCHcur1INTOtid,tname;
  28. WHILE(tidisnotnull)
  29. DO
  30. /*核心数据收集*/
  31. insertintotmp_tablevalues(tid,tname);
  32. calliterative(tid,layer-1);
  33. FETCHcur1INTOtid,tname;
  34. ENDWHILE;
  35. endif;
  36. END;//
  37. DELIMITER;

更多相关文章

  1. mysql中在表中insert数据时,有重复主键id时,变成update
  2. MySQL在保存数据时添加时间戳
  3. Spring Security ACL使用MySQL配置与数据库脚本
  4. 需要从mysql数据库中获得productdata。
  5. 数据库行转列和列转行小例子
  6. 加载数据INFILE不工作。
  7. MySQL数据库储存bit类型的值报错
  8. 多个mysql数据库怎么指定到多个不同文件目录
  9. 一步一步学MySQL----9 条件数据记录查询

随机推荐

  1. Java时区转换与时间格式
  2. 8/人天,小记一次 JAVA(APP后台) 项目改造 .N
  3. VC6.0添加注释快捷键,类似Eclispe如此方便
  4. 用javascript进行拖拽2(转)
  5. 手低眼高 初学者学习Hibernate的方法
  6. java线程--volatile实现可见性
  7. 添加到arraylist中的列表时IndexOutOfBou
  8. 作为一只程序猿,我要说说IT业的研发工程师
  9. jQuery(JavaScript)获取文字(字符串)宽度(显示
  10. 变态跳台阶(java版)