Mysql update множественное обновление одним запросом

Здравствуйте, заранее извинюсь если кому то этот вопрос покажется детским.

Требуется обновить 5 записей в одной таблице в разных строках.
Тоесть SET filed=1 where id=1, SET filed=2 where id=12, SET filed='0.5' where id=3…

Описал как мог. Буду очень признателен если натолкнете на путь истинный
  • Вопрос задан
  • 37152 просмотра
Решения вопроса 1
try4tune
@try4tune
Ваше решение медленное. Эффективнее обновить по 1 полю за 1 запрос обычный, без join'ов.
Или использовать вот такой вариант, он гораздо эффективнее по производительности чем Ваш:

UPDATE `table` SET `field` = CASE `id`
WHEN val1 THEN data1
WHEN val2 THEN data2
ELSE `field` END

Только обязательно не забывайте ELSE.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
MuXaJIbI4
@MuXaJIbI4
еще можно так

INSERT INTO `table` (id, field) VALUES (1, 1), (2, 12), (3, 0.5) ON DUPLICATE KEY UPDATE field = VALUES(field)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы