使用MySQL查询遍历行以创建递归树
我有一个像这样设置的物料清单表:
item-parent
显示物料清单的最终结果是这样显示的:
item 1 - parent 0 item 2 - parent 1
item 3 - parent 1
最终结果也可能是多级的,如下所示:
item 3 - parent 0 item 4 - parent 3
item 76 - parent 3
它可以无限进行:
item 76 - parent 0 item 46 - parent 76
item 46 - parent 0
item 25 - parent 46
现在,我要么只是从数据库中获得1级:
SELECT * FROM bom WHERE parentId = $itemId (shorthand)
或从表中拉出每一行,并使用递归函数仅对所需行进行排序,但这显然效率不高,因为我可能只需要10行,但我拉出10,000条记录。递归函数的输出将只创建一个像这样的树:
item 1 item 2
item 3
item 4
item 76
item 46
item 25
我所知道的是,我从项目1开始。项目5的父级可以为11;项目5的父级可以为11。他们不必顺序进行。我想把所有的子树枝都放在树上。我如何在mysql中执行此查询?
回答:
早在2011年10月24日,有人 发布了一个
。MySQL的SQL无法支持它。
在 , 我写下了三(3)个存储过程(
GetParentIDByID,GetAncestry和GetFamilyTree )。希望这些信息可以帮助您构建所需的内容。
****
以上是 使用MySQL查询遍历行以创建递归树 的全部内容, 来源链接: utcz.com/qa/404094.html