Использование MySQL-запроса для обхода строк для создания рекурсивного дерева

У меня есть таблица с перечнем материалов, которая настроена так:
пункт - родитель

Конечный результат при отображении перечня материалов заключается в том, что он отображается следующим образом:

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 строк, но я извлекаю 10000 записей. Вывод рекурсивной функции просто создаст дерево вроде этого:

item 1
   item 2
   item 3
      item 4
      item 76
         item 46
            item 25

Все, что я знаю, это то, что я начинаю с пункта 1. У пункта 5 может быть родитель 11; они не должны идти последовательно. Я хочу получить все дочерние ветви на дереве. Как я мог сделать этот запрос в MySQL?

Ответы на вопрос(4)

Ваш ответ на вопрос