Получить рекурсию родителей в правильном порядке для удаления из таблицы MySQL

У меня есть такая структура таблицы

mysql> SELECT id, name, parent_id FROM categories;
+-------+------------+-----------+
| id    | name       | parent_id |
+-------+------------+-----------+
| 15790 | Test       |         0 |
| 15791 | Test2      |         0 |
| 16079 | Subtest    |     15790 |
| 16080 | Subtest 2  |     15790 |
| 16081 | Subsubtest |     16079 |
+-------+------------+-----------+

Теперь я хочу найти родителя для каждого ребенка и брата и сестры и вернуть его в правильном порядке для удаления.

Таким образом, мой вывод в этом случае будет:

Array
(
  16081,
  16080,
  16079,
  15791,
  15790
)

Я не могу удалить, просто изменив родительские идентификаторы, потому что это должно быть твердым, возвращаясь к дереву.

Также я не могу/не могу изменить структуру таблицы. Поэтому необходимо построить некий индекс.

6
задан Dan Lee 22 June 2012 в 12:19
поделиться