频道栏目
首页 > 资讯 > MySQL > 正文

[MySQL]实现树形的遍历(关于多级菜单栏以及多级上下部门的查询问题)

14-09-15        来源:[db:作者]  
收藏   我要投稿
前言:



1,建立测试表和数据:

















2,利用临时表和递归过程实现树的遍历(mysql的UDF不能递归调用):

2.1,从某节点向下遍历子节点,递归生成临时表数据
-- pro_cre_childlist























2.2,从某节点向上追溯根节点,递归生成临时表数据
-- pro_cre_parentlist
























2.3,实现类似Oracle SYS_CONNECT_BY_PATH的功能,递归过程输出某节点id路径
-- pro_cre_pathlist





























2.4,递归过程输出某节点name路径
-- pro_cre_pnlist





























2.5,调用函数输出id路径
-- fn_tree_path













2.6,调用函数输出name路径
-- fn_tree_pathname












2.7,调用过程输出子节点
-- pro_show_childLst
















2.8,调用过程输出父节点
-- pro_show_parentLst
















3,开始测试:

mysql> CALL pro_show_childLst(-1);
















3.2,显示首页下面的子节点
CALL pro_show_childLst(13);
















3.3,显示TV580下面的所有子节点
CALL pro_show_childLst(14);

















3.4,“帮忙”节点有一个子节点,显示出来:
CALL pro_show_childLst(17);
















3.5,“栏目简介”没有子节点,所以只显示最终节点:
mysql> CALL pro_show_childLst(18);













3.6,显示根节点的父节点
CALL pro_show_parentLst(-1);










3.7,显示“首页”的父节点
CALL pro_show_parentLst(13);















3.8,显示“TV580”的父节点,parent_id为-1
CALL pro_show_parentLst(14);












3.9,显示“帮忙”节点的父节点
mysql>

















3.10,显示最低层节点“栏目简介”的父节点
CALL pro_show_parentLst(18);

















参考网址:
http://jan.kneschke.de/projects/mysql/sp/sp_tree.sql
相关TAG标签
上一篇:Oracle基本数据改变原理浅析(redo与undo)--oracle核心技术读书笔记一
下一篇:下载sqlserver2008安装报错
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站