使用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; 他们不必顺序。我希望得到树中的所有子分支。我怎么能在mysql中执行此查询?