У меня есть продукты таблицы MySql (доступ через PHP и PDO) со следующей структурой:декремента значение столбца на нескольких строк с PHP и PDO
CREATE TABLE IF NOT EXISTS `products` (
`id` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`description` text NOT NULL,
`order` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
продукты показаны с помощью поля заказа. Когда я удаляю продукт, я хотел бы уменьшить значения порядка для всех следующих строк (т. Е. Если я удалю продукт с order=2
, я хочу обновить следующую строку от order=3
до order=2
, а затем от order=4
до order=3
и так далее. ..).
Я, очевидно, хотел бы сделать этот запрос наиболее эффективным способом с помощью PDO. Я нашел this question и попытался следующее заявление в PhpMyAdmin:
UPDATE products SET order = order - 1 WHERE (order>2)
, но это дает мне следующую ошибку:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order = order - 1 WHERE (order>2)' at line 1
Что мне не хватает? И тогда, как правильно писать его с помощью PDO?