sql – 如何递归查找子项的所有ID?

我想从只有MySQL的树中获取孩子们的所有ID.

我有这样一张桌子:

ID parent_id name
1  0         cat1
2  1         subcat1
3  2         sub-subcat1
4  2         sub-subcat2
5  0         cat2

现在我试图以递归方式获取cat1(2,3,4)的所有子ID.有什么办法可以实现吗?

解决方法:

执行此操作有两种基本方法:邻接列表和嵌套列表.看看Managing Hierarchical Data in MySQL.

你有什么是邻接名单.没有办法用一个SQL语句递归抓取所有后代.如果可能的话,只需抓住它们并将它们全部映射到代码中.

嵌套集可以做你想要的,但我倾向于避免它,因为插入记录的成本很高,而且容易出错.

上一篇:c – OpenMP:嵌套并行化有什么好处?


下一篇:python – 访问嵌套在字典中的值