我想知道这是否是一个有效的查询:
UPDATE table
SET ID = 111111259
WHERE ID = 2555
AND SET ID = 111111261
WHERE ID = 2724
AND SET ID = 111111263
WHERE ID = 2021
AND SET ID = 111111264
WHERE ID = 2017
Run Code Online (Sandbox Code Playgroud)
Bra*_*one 50
没有!
你需要单独处理这些
Update [table]
Set ID = 111111259
WHERE ID = 2555
Update [table]
Set ID = 111111261
WHERE ID = 2724
--...
Run Code Online (Sandbox Code Playgroud)
nik*_*trs 45
最佳选择是多次更新.
或者,您可以执行以下操作,但不建议:
UPDATE table
SET ID = CASE WHEN ID = 2555 THEN 111111259
WHEN ID = 2724 THEN 111111261
WHEN ID = 2021 THEN 111111263
WHEN ID = 2017 THEN 111111264
END
WHERE ID IN (2555,2724,2021,2017)
Run Code Online (Sandbox Code Playgroud)
Ahm*_*mad 14
不.这不是有效的查询.您只能有一个包含多个字段的SET语句,但也有一个WHERE子句
update table1 set field1=value1, field2=value2, field3=value3 where filed4=value5
Run Code Online (Sandbox Code Playgroud)
不,这就是你的做法:
UPDATE table SET ID = 111111259 WHERE ID = 2555
UPDATE table SET ID = 111111261 WHERE ID = 2724
UPDATE table SET ID = 111111263 WHERE ID = 2021
UPDATE table SET ID = 111111264 WHERE ID = 2017
Run Code Online (Sandbox Code Playgroud)
您还可以像这样使用 case:
UPDATE table
SET ID = case
when ID = 2555 then 111111259
when ID = 2724 then 111111261
when ID = 2021 then 111111263
when ID = 2017 then 111111264
else ID
end
Run Code Online (Sandbox Code Playgroud)