Skip to main content
 首页 » 编程设计

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

2024年02月24日20TianFang

我有表 - 配置。 架构: 配置名称 |配置值

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

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

但是该查询是错误的:(

你能帮我吗?

请您参考如下方法:

尝试多表更新语法

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 演示