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

PostgreSQL如何用单条UPDATE语句批量更新多行匹配条件的数据

用单条PostgreSQL UPDATE语句实现多条件字段更新

当然可行!PostgreSQL的UPDATE语句支持结合CASE表达式来实现这种多分支的条件更新,完全能用单条语句完成你想要的操作。

具体实现语句

假设你的表名为your_table,对应的更新语句如下:

UPDATE your_table
SET 
  ivalue = CASE 
             WHEN featureid IN (1, 2, 4, 6) AND accountid = 90 THEN 100
             ELSE ivalue
           END,
  bvalue = CASE 
             WHEN featureid IN (7, 8) AND accountid = 90 THEN false
             ELSE bvalue
           END
WHERE 
  (featureid IN (1, 2, 4, 6) AND accountid = 90)
  OR (featureid IN (7, 8) AND accountid = 90);

代码解释

  1. CASE表达式:分别针对ivalue和bvalue设置条件逻辑,只有当匹配到指定的featureid和accountid组合时,才修改对应字段的值;不匹配的情况下保持字段原有值,避免误改其他行。
  2. WHERE子句:用来过滤出需要更新的目标行,避免对全表所有行执行更新操作,提升语句执行效率,同时确保无关行不会被触及。

更新后的预期结果

执行这条语句后,你的表数据会变成:

idupdatedatfeatureidaccountidbvalueivalue
3342018-03-23 00:06:23190100
3352018-03-23 00:06:23290100
3372018-03-23 00:06:23490100
3392018-03-23 00:06:23690100
3402018-03-23 00:06:23790false
3412018-03-23 00:06:23890false
3422018-03-23 00:06:23990false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:48:54