我认为答案是否定的,但是我很喜欢它,任何人都可以深入了解如何在SQL(MySQL)中将树结构爬网到任何深度,而只需一个查询更具体地说,给定一个树形结构的表(id,数据,数据,parent_id)和表中的一行,是否有可能获得所有后代(子代/孙代/等等),或者所有祖先(父代/祖父母) / etc),而不用单个查询知道它会走多远?还是使用某种递归需求,在这里我不断进行更深入的查询,直到没有新结果为止?具体来说,我使用的是Ruby和Rails,但我猜这不太相关。
3 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
我之前遇到过这个问题,并且有一个古怪的想法。您可以在每个记录中存储一个字段,该字段是直接祖先的ID一直串联到根的串联字符串。
想象一下,您有这样的记录(缩进意味着层次结构,数字是id,祖先。
1,“ 1”
2,“ 2,1”
5,“ 5,2,1”
6,“ 6,2,1”
7,“ 7、6、2、1”
11,“ 11,6,2,1”
3,“ 3,1”
8,“ 8、3、1”
9,“ 9,3,1”
10,“ 10,3,1”
然后选择id:6的后代,只需执行此操作
SELECT FROM table WHERE ancestors LIKE "%6,2,1"
使祖先列保持最新状态可能比给您带来更多麻烦,但这对任何数据库都是可行的解决方案。
添加回答
举报
0/150
提交
取消