Здравствуйте.
Есть таблица такого вида:
id | paren_id | left_key | righ_key | name
1 | 0 | 1 | 2 | категория 1
1 | 1 | 5 | 6 | категория 2
1 | 1 | 3 | 4 | категория 3
1 | 0 | 7 | 8 | категория 4
left_key внешняя сортировка
righ_key внутренняя сортировка
После запроса получаю
категория 1
--категория 3
--категория 2
категория 4
Как построить SQL запрос при изменении позиции категории?
Если "категория3" станет выше "категории 1" то нужно данные в всех столбцах left_key , righ_key изменить на новые.
Идея такая:
Отправляю в функцию id категории и before_id(перед какой должна встать)
Получаю данные left_key , righ_key всех строк. Провожу манипуляции с новыми позициями.
Как теперь изменить их в таблице?
Делать один большой запрос к БД или есть другое решение? Или подскажите в какую строну копать.
Извините если слишком намудрил.