2014-09-02 2 views
1

У меня есть продукты таблицы 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?

ответ

Смежные вопросы