使用where条件更新mysql表中的每一行一个查询
您好,我正在尝试使用where条件更新mysql表中的每一行和每一列使用where条件更新mysql表中的每一行一个查询,mysql,sql-update,Mysql,Sql Update,您好,我正在尝试使用where条件更新mysql表中的每一行和每一列 update city set (ID='1001' where ID='1') and (ID='1002' where ID='2'); 但这似乎不起作用。有人能提出建议吗?像上面的评论一样,我会将其作为两个独立的查询: update city set ID='1001' where ID='1'; update city set ID='1002' where ID='2'; 保持代码尽可能简单是一个优势。它在
update city set (ID='1001' where ID='1') and (ID='1002' where ID='2');
但这似乎不起作用。有人能提出建议吗?像上面的评论一样,我会将其作为两个独立的查询:
update city set ID='1001' where ID='1';
update city set ID='1002' where ID='2';
保持代码尽可能简单是一个优势。它在将来更容易修改
但如果你必须用一句话来表达:
update city
set ID = CASE ID WHEN '1' THEN '1001' WHEN '2' THEN '1002' END
where ID IN ('1', '2');
使用
大小写
表达式:
update city
set ID = case ID
when '1' then '1001'
when '2' then '1002'
end
where ID IN ('1', '2');
或更简单:
update city
set ID = ID + 1000
where ID IN ('1', '2');
我已经尝试过这个查询,但是它给出了错误“error Code:1062.Duplicate entry'1001'用于key'city.PRIMARY'”@developerKris这意味着表中已经有另一行ID=1001。我假设ID是表的主键,所以不会有任何重复项。你检查过这张桌子了吗?是的,我没有检查我有它的副本。谢谢你提醒我!如果我必须更新更多的列而不是ID,该怎么办?有什么建议吗?@developerKris只需使用
,
,并在第一列之后和WHERE子句之前添加列:更新城市集ID=ID+1000,另一列=0,另一列=2,其中ID位于('1','2');