Mysql 使用单独的WHERE条件更新两个不同的列
我想用不同的WHERE条件更新表中的两列。我找遍了所有地方,似乎都找不到与实际情况相符的解决方案。我想要这样的东西:Mysql 使用单独的WHERE条件更新两个不同的列,mysql,Mysql,我想用不同的WHERE条件更新表中的两列。我找遍了所有地方,似乎都找不到与实际情况相符的解决方案。我想要这样的东西: UPDATE users SET col1= 'name1' WHERE id=3 AND col2='name1' WHERE id=10 可以使用大小写表达式执行此操作: UPADATE users SET col1 = CASE WHEN id=3 THEN 'name1' ELSE col1 END, col2 = CASE WHEN id=10
UPDATE users
SET col1= 'name1' WHERE id=3
AND col2='name1' WHERE id=10
可以使用大小写表达式执行此操作:
UPADATE users
SET
col1 = CASE WHEN id=3 THEN 'name1' ELSE col1 END,
col2 = CASE WHEN id=10 THEN 'name1' ELSE col2 END
WHERE id IN (3, 10)
但我发现这种语法很笨拙,我可能宁愿在逻辑上进行单独的更新,而不是在单个事务中的单独命令中使用CASE。尝试多表更新语法
UPDATE user t1 JOIN user t2
ON t1.id = 3 AND t2.id = 10
SET t1.col1 = 'name1',
t2.col2 = 'name1';
或者Tim Biegeleisen所说的条件更新Upadate不是一个词。除此之外,我不会回答带有“想要”的问题;这只是一件事。@草莓有一刻我以为有一个隐藏的MySQL命令我不知道:-