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

Mysql SQL使用不同的参数或值更新多个记录,mysql,sql,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 谢谢。最简单的方法是使用三个单独的查询 可以使用单个查询,但更复杂: UPDATE states SET

我知道这行不通:

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

谢谢。

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

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

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)

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

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

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)

我能想到的一个例子是
案例
。我只是担心性能问题,因为我可能有10个或20个项目需要立即更新。我可以想到的一个是
case
。我只是担心性能问题,因为我可能有10个或20个项目需要立即更新。如何生成要更新的ID和位置列表?它们是由某种评分系统动态生成的吗?其中可能有多少?如何生成要更新的ID和位置列表?它们是由某种评分系统动态生成的吗?他们中可能有多少人?