Я получил эту таблицу в базе данных MySQL, «пользователи». В нем есть поля id и value.
Теперь я хочу обновить много строк в этой таблице с помощью одиночного запроса SQL, но многие строки должны получить другое значение. В настоящее время я использую это:
UPDATE users
SET value = CASE id
WHEN 1 THEN 53
WHEN 2 THEN 65
WHEN 3 THEN 47
WHEN 4 THEN 53
WHEN 5 THEN 47
END
WHERE id IN (1,2,3,4,5)
Это работает. Но я чувствую, что могу сделать некоторую оптимизацию, поскольку я присваиваю строкам всего около 3 или 4 различных значений. Как видите, сейчас это 47, 53 и 65. Есть ли способ обновить все строки, которые получают одно и то же значение одновременно в одном запросе? Или есть другой способ оптимизировать это?