我想使用 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/