You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单条UPDATE查询批量更新同一列的多个不同值

问题结论

你编写的合并后UPDATE语句逻辑完全正确,执行效果和原有4条分开执行的UPDATE语句完全一致。

正确性说明
  • 你将所有语句共有的Module = '23'过滤条件放到了全局WHERE子句中,首先就限定了只会修改Module字段为23的记录,完全匹配原有逻辑的限制要求
  • CASE语句的映射规则完全对应原有4条语句的赋值规则:'30'→'200'、'31'→'201'、'32'→'202'、'33'→'203'
  • 不匹配CASE条件的记录会走else AuditObjectType分支,相当于原值不变,不会误修改其他不需要调整的Module=23的记录
可选优化建议

如果想要进一步提升执行效率(尤其表数据量较大时),可以在WHERE子句中额外增加AuditObjectType的范围过滤,避免扫描所有Module=23的记录,优化后语句如下:

update [Audit].[mfw].[Audit]
set AuditObjectType = (case AuditObjectType  
                           when '30' then '200'
                           when '31' then '201'
                           when '32' then '202'
                           when '33' then '203'
                           else AuditObjectType 
                           end)
WHERE Module = '23'
AND AuditObjectType IN ('30','31','32','33')

内容的提问来源于stack exchange,提问作者user15060642

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:18:03