如何用单条SQL查询实现同字段多值批量更新
单条SQL更新同字段多个值的实现方案
要实现单条语句完成同一字段的多条件更新,可以使用CASE WHEN条件表达式完成,语句如下:
UPDATE 你的表名 SET 待更新字段名 = CASE WHEN 待更新字段名 = '111' THEN '555' WHEN 待更新字段名 = '222' THEN '999' ELSE 待更新字段名 END WHERE 待更新字段名 IN ('111', '222');
注意事项
- 请将语句中的
你的表名、待更新字段名替换为实际业务中的表名和对应字段名即可使用 - 语句末尾的
WHERE条件可以缩小扫描范围,既提升执行效率,也能避免误改其他数据;如果省略WHERE条件,ELSE 待更新字段名的逻辑也会保证字段其他值不会被修改,仍可正常执行 - 执行更新操作前,建议先执行查询语句验证匹配的行是否符合预期:
SELECT * FROM 你的表名 WHERE 待更新字段名 IN ('111', '222'); - 生产环境操作建议提前开启事务,验证更新结果无误后再提交,避免数据损失。
内容的提问来源于stack exchange,提问作者Muhammad Adnan
相关产品推荐
相关产品推荐

