Сведения о вопросе

Solllo

14:45, 7th August, 2020

Теги

MySQL    

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

Просмотров: 364   Ответов: 2

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

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

Описал как мог. Буду очень признателен если натолкнете на путь истинный



  Сведения об ответе

DO__IT

10:16, 11th August, 2020

Ваше решение медленное. Эффективнее обновить по 1 полю за 1 запрос обычный, без join'ов.
Или использовать вот такой вариант, он гораздо эффективнее по производительности чем Ваш:

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

Только обязательно не забывайте ELSE.


  Сведения об ответе

qwerty101

09:16, 10th August, 2020

еще можно так

INSERT INTO `table` (id, field) VALUES (1, 1), (2, 12), (3, 0.5) ON DUPLICATE KEY UPDATE field = VALUES(field)


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться