SQL使用不同的参数或值更新多个记录

时间:2012-04-18 16:30:45

标签: mysql sql

我知道这不起作用:

UPDATE `states` SET `country_id` = '83', `position` = (1,2,3) WHERE `states`.`id` IN (381, 378, 380);

有没有办法根据

更新行
id = 381; position = 1
id = 378; position = 2
id = 380; position = 3

感谢。

1 个答案:

答案 0 :(得分:3)

最简单的方法是使用三个单独的查询。

可以使用单个查询,但更复杂:

UPDATE states
SET country_id = '83',
    position = CASE id WHEN 381 THEN 1
                       WHEN 378 THEN 2
                       WHEN 370 THEN 3 END
WHERE id IN (381, 378, 380)