Тема: MYSQL: Перевпорядкування записів за приорітетом (зміна приорітету)
Доброго дня, шановні.
Дозвольте запитання. Є така таблиця:
CREATE TABLE `items` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`title` VARCHAR(128) NOT NULL,
`priority` TINYINT(1) UNSIGNED NOT NULLs
);
На сторінці є певний sortable інтерфейс, який зберігає у вбудованому dataSource всю зчитану з даної таблиці інформацію. Коли окремі елементи переміщуються, необхідно змінити їхній priority. Я можу передати на бекенд, всі id елементів у поточному порядку (після переміщення). Задача оновити поле priority в таблиці у відповідності до масиву id, що отримано з фронтенду. Чи можна цю операцію виконати одним запитом?
Бо якщо чесно, мені нічого не приходить на думку, окрім виконати стільки запитів UPDATE, скільки даних міститься у масиві... щось типу такого:
foreach ($ids as $i => $id) {
DB::query('UPDATE `items` SET `priority` = '.$i.' WHERE `id` = '.$id)->execute();
}
Безмежно вдячний за конструктивні поради.