MySQL 实现树形的遍历

栏目: Mysql · 发布时间: 7年前

内容简介:关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。

前言:
关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以 MySQL 遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。
1,建立测试表和数据:

2,利用临时表和递归过程实现树的遍历(mysql的UDF不能递归调用):
2.1,从某节点向下遍历子节点,递归生成临时表数据

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

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

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

2.5,调用函数输出id路径

2.6,调用函数输出name路径

2.7,调用过程输出子节点

2.8,调用过程输出父节点

3,开始测试:
3.1,从根节点开始显示,显示子节点集合:

3.2,显示首页下面的子节点

3.3,显示TV580下面的所有子节点

3.4,“帮忙”节点有一个子节点,显示出来:

3.5,“栏目简介”没有子节点,所以只显示最终节点:

3.6,显示根节点的父节点

3.7,显示“首页”的父节点

3.8,显示“TV580”的父节点,parent_id为-1

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

3.10,显示最低层节点“栏目简介”的父节点

参考网址:
http://jan.kneschke.de/projects/mysql/sp/sp_tree.sql
http://blog.csdn.net/ylqmf/article/details/5172901


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Agile Web Development with Rails 4

Agile Web Development with Rails 4

Sam Ruby、Dave Thomas、David Heinemeier Hansson / Pragmatic Bookshelf / 2013-10-11 / USD 43.95

Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly. You concentrate on creating the application, and Rails takes care of the details. Tens of thousands of deve......一起来看看 《Agile Web Development with Rails 4》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码