设为首页 加入收藏

TOP

[MySQL]实现树形的遍历(关于多级菜单栏以及多级上下部门的查询问题)
2015-07-24 11:08:57 来源: 作者: 【 】 浏览:1
Tags:MySQL 实现 树形 关于 多级 菜单 以及 上下 部门 查询 问题
前言: mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。
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
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇mysql常用的命令 下一篇MySQL函数学习笔记一:数学函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)