MySQL рекурсивная замена запросов в PHP - PullRequest
0 голосов
/ 23 марта 2011

Поскольку в MySQL похоже, что рекурсивные запросы невозможны, мне интересно, есть ли решение для получения той же информации, которая также ограничивает количество запросов, которые я делаю к базе данных.В моем случае у меня есть то, что равняется дереву, и, учитывая узел, я делаю путь назад к корню и сохраняю имя узлов на ходу.Учитывая таблицу как это:

 id | parent
-------------
 1  |   
 2  |   1
 3  |   1
 4  |   2
 5  |   2
 6  |   5

Я хочу выбрать все идентификаторы на пути от 6 обратно до 1 (6,5,2,1).Поскольку общая длина пути неизвестна, я бы предположил, что единственный способ сделать это - взять результаты одного запроса и построить новый запрос, пока я не вернусь к корню.С другой стороны, прошло уже несколько лет с тех пор, как я последний раз использовал MySQL, поэтому меня не удивит, если я немного потерю связь.Любая помощь будет оценена.

1 Ответ

1 голос
/ 23 марта 2011

Так как в mySQL похоже, что рекурсивные запросы невозможны

mySQL не поддерживает оператор CONNECT BY, правда - но вы можете реализовать рекурсивные процедуры / функции, используя mysql, и возвращать из них наборы результатов.

...