MySQL CASE更新多列

标签 mysql sql case

我想使用 case 语句更新表中的多个列,但我找不到如何执行此操作(甚至可能)。我提出了以下无效引用查询:

UPDATE tablename SET
    CASE name
        WHEN 'name1' THEN col1=5,col2=''
        WHEN 'name2' THEN col1=3,col2='whatever'
        ELSE col1=0,col2=''
    END;

有什么方法可以使用有效的 SQL 实现预期的结果吗?

最佳答案

UPDATE tablename
SET col1 = CASE WHEN name = 'name1' THEN 5 
                WHEN name = 'name2' THEN 3 
                ELSE 0 
           END
 , col2 = CASE WHEN name = 'name1' THEN '' 
               WHEN name = 'name2' THEN 'whatever' 
               ELSE '' 
          END
;

关于MySQL CASE更新多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13673890/

相关文章:

mysql - 从 3 个绑定(bind)在一起的表中选择什么是最佳解决方案?

mysql - 选择两列中较小的日期时间

Java、switch case 和数组

mysql - 如何让 MySQL case 语句在存储过程中工作?

MySQL 选择具有相同字段值的多个连接对象的记录

SQL Max 跨多个版本

MySQL 在数组中动态存储新用户 ID 并检索的方法

mysql - 如何将小计添加到 MySQL 中的表中?

php - 对于非常小的数字,删除数字格式中的 "E"

php - 仅更新 MySQL 查询中的特定列(如果设置了特定值)