alestro
@alestro

Nested sets как удалить узел и все дочерние элементы?

Нашел подобный запрос, но он удаляет только сам узел, а все дочерние элементы остаются на своих местах.
Как можно удалить узел и все дочерние элементы?
DELETE FROM my_tree WHERE left_key >= $left_key AND right_ key <= $right_key;
UPDATE my_tree SET left_key = IF(left_key > $left_key, left_key – ($right_key - $left_key + 1), left_key), right_key = right_key – ($right_key - $left_key + 1) WHERE right_key > $right_key
  • Вопрос задан
  • 296 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Запрос, вроде, правильный. Скорее всего проблема в неправильной организации nested set в базе. В корректном nested set условие
left_key >= :parent_left_key AND right_key <= :parent_right_key

описывает узел со всеми его потомками.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект