小编典典

SQL - 在一个查询中更新多条记录

all

我有表 配置 。架构: config_name | config_value

我想在一个查询中更新多条记录。我尝试这样:

UPDATE config 
SET t1.config_value = 'value'
  , t2.config_value = 'value2' 
WHERE t1.config_name = 'name1' 
  AND t2.config_name = 'name2';

但那个查询是错误的:(

你能帮助我吗?


阅读 67

收藏
2022-08-02

共1个答案

小编典典

尝试多表更新语法

UPDATE config t1 JOIN config t2
    ON t1.config_name = 'name1' AND t2.config_name = 'name2'
   SET t1.config_value = 'value',
       t2.config_value = 'value2';

这是一个 SQLFiddle 演示

或有条件更新

UPDATE config
   SET config_value = CASE config_name 
                      WHEN 'name1' THEN 'value' 
                      WHEN 'name2' THEN 'value2' 
                      ELSE config_value
                      END
 WHERE config_name IN('name1', 'name2');

这是一个 SQLFiddle 演示

2022-08-02