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

如何将两个操作相同support表的类似update查询合并为单个查询

两条UPDATE语句合并方案

你可以通过条件判断表达式实现两条更新语句的合并,执行逻辑和原有两条语句完全一致,且只需要扫描一次数据表,执行效率更高。

标准SQL通用写法(兼容PostgreSQL、Oracle、SQLite等)

UPDATE support
SET 
  PH1 = CASE WHEN PH1 IS NOT NULL THEN '0' || PH1 ELSE PH1 END,
  PH2 = CASE WHEN PH2 IS NOT NULL THEN '0' || PH2 ELSE PH2 END
WHERE PH1 IS NOT NULL OR PH2 IS NOT NULL;

逻辑说明:

  • 对PH1字段,仅当它非空时拼接前缀0,否则保留原值不修改
  • 对PH2字段逻辑同上,两个字段的更新操作互不干扰
  • 末尾的WHERE条件过滤掉PH1、PH2全为空的行,避免执行无意义的更新操作

MySQL适配写法

MySQL默认不支持||作为字符串拼接符,需要替换为CONCAT函数,同时也可以用更简洁的IF函数替代CASE表达式:

UPDATE support
SET 
  PH1 = IF(PH1 IS NOT NULL, CONCAT('0', PH1), PH1),
  PH2 = IF(PH2 IS NOT NULL, CONCAT('0', PH2), PH2)
WHERE PH1 IS NOT NULL OR PH2 IS NOT NULL;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:27:02