在mysql中,我有一个使用邻接列表模型表示的树。
MYTREE
id
parent_id
title我想知道:
给定一个节点的id,有没有办法选择对该节点有好处的整个树,以及深度信息?这棵树是任意深的,所以我不能说有多少层。但结果集可能如下所示:
ID TITLE DEPTH
4 title1 1
8 title2 2
16 title8 3
9 title3 2
15 title4 3我知道使用嵌套集模型可以做到这一点。但是关于嵌套集合的一些事情并不理想,我希望不需要切换。
谢谢你的建议!
发布于 2010-06-11 03:16:12
编辑:我没有注意到标题中任意深的子句:
您可以编写一个存储过程来递归行。
但是嵌套集合有什么不理想的地方(至少这不是before insert触发器或存储过程所能处理的)?
发布于 2010-06-11 03:14:11
简短的回答是:不。
遍历用父指针表示的树的唯一方法是跟随一组接一组的父ID。如果您可以限制深度,那么这是可能的,只需在表中连接那么多次,但如果深度不受限制,应用程序端循环通常是可行的。
https://stackoverflow.com/questions/3017611
复制相似问题