使用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

回到顶部