Задать вопрос
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
  • Вопрос задан
  • 302 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Запрос, вроде, правильный. Скорее всего проблема в неправильной организации nested set в базе. В корректном nested set условие
left_key >= :parent_left_key AND right_key <= :parent_right_key

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽