Так как похоже, что рекурсивные запросы в MySQL не возможны, мне интересно, есть ли решение получить ту же информацию, которая также ограничивает количество запросов, которые я делаю в базе данных. В моем случае у меня есть то, что составляет дерево, и дано node, я делаю путь назад к корню и сохраняю имя узлов по мере того, как я иду. Для таблицы такой:
id | parent
-------------
1 |
2 | 1
3 | 1
4 | 2
5 | 2
6 | 5
Я хочу выбрать все идентификаторы на пути от 6 до 1 (6,5,2,1). Поскольку общая длина пути неизвестна, я бы предположил, что единственный способ сделать это - взять результаты из одного запроса и построить новый запрос, пока я не вернусь к корню. Затем снова прошло пару лет с тех пор, как я в последний раз использовал MySQL, поэтому меня это не удивит, если я немного оторвусь. Любая помощь будет оценена по достоинству.
Поскольку в mySQL не существует рекурсивных запросов
mySQL не поддерживает оператор CONNECT BY, true - но вы можете реализовать рекурсивные процедуры/функции с помощью mysql и возвращать наборы результатов из них.