最近遇到了一个问题,在mysql中如何完成节点下的所有节点或节点上的所有父节点的查询?
在Oracle中我们知道有一个Hierarchical Queries可以通过CONNECT BY来查询,但是,在MySQL中还没有对应的函数!!!
下面是sql脚本,想要运行的直接赋值粘贴进数据库即可。
创建表treenodes
(可以根据需要进行更改)
1 |
-- ---------------------------- |
插入几条数据
1 |
-- ---------------------------- |
把下面的语句直接粘贴进命令行执行即可(注意修改传入的参数,默认rootId,表明默认treenodes)
根据传入id查询所有父节点的id
1 |
delimiter // |
执行命令
select getParList(15);
结果:
id | nodename | pid |
---|---|---|
8 | H | 0 |
9 | I | 8 |
12 | L | 9 |
15 | O | 12 |
根据传入id查询所有子节点的id
1 |
delimiter // |
执行命令
select getChildList(7);
结果:
id | nodename | pid | |||
---|---|---|---|---|---|
7 | G | 本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/p/7256192.html,如需转载请自行联系原作者 |