Запрос MySQL или хранимая процедура, которая рекурсивно вызывает себя и возвращает все узлы для выбранного родителя

id | parent_id | name
-------------------------
1  | null      | World
2  | 1         | Sri Lanka
3  | 1         | America
4  | 2         | South Province
5  | 2         | Western Province
6  | 4         | Galle
7  | 6         | Wakwella
8  | 3         | New York

Мне нужен запрос MySQL или хранимая процедура, которая рекурсивно вызывает себя и возвращает все узлы, дочерние узлы и конечные узлы для выбранного "id".

Например:

Когда я хочу выбрать всех дочерних элементов id = 2, результат должен быть,

South Province
Western Province
Galle
Wakwella

Когда я хочу выбрать всех дочерних элементов id = 3, результат должен быть,

New York

person chathun    schedule 31.10.2013    source источник


Ответы (1)


здесь был дан ответ на аналогичный вопрос: https://dba.stackexchange.com/questions/7147/find-highest-level-of-a-hierarchical-field-with-vs-without-ctes/7161#7161

Для этого вам нужно использовать хранимые процедуры.

person Ruben Verschueren    schedule 31.10.2013