2014-03-14 5 views
0

У меня есть эта таблица дб:MySQL - UPDATE одного значения столбца с помощью одного запроса

Items 
------- 
id // values: 1,2,3,4,5 ... 
name // values: Item1,Item2,Item3,Item4,Item5 ... 
order // values: 1, 5, 2, 3, 4 ... 

Элементы являются изображения. Порядок изображений задается в массиве при перемещении изображений вокруг, но для обновления порядка я использую один UPDATE внутри цикла. Мне было интересно, могу ли я сделать UPDATE без использования цикла.

Мне было интересно, могу ли я сразу обновить заказ элемента, используя только один запрос UPDATE.

+0

Зависит от того, что вы хотите иметь значение 'order'. Если они просто должны быть такими же, как 'id', вы можете сделать' UPDATE Items SET order = id', но я сомневаюсь, что вы хотите. Просьба уточнить. – Moob

+0

Элементы изображения. Порядок изображений задается в массиве при перемещении изображений вокруг, но для обновления порядка я использую один UPDATE внутри цикла. Мне было интересно, могу ли я сделать UPDATE без использования цикла. – Lykos

+0

Заказ будет обновлен до нового набора заказов. Пожалуйста, просмотрите сообщение, я сделал редактирование – Lykos

ответ

1

Вы можете использовать синтаксис INSERT (..) ON DUPLICATE KEY UPDATE (..).

INSERT INTO `table` (`id`, `order`) 
VALUES (1, 1), (2, 5), (3, 2), (4, 3), (5, 4) 
ON DUPLICATE KEY UPDATE `order` = VALUES(`order`) 
Смежные вопросы