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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽