如何更改update语句中的列集

时间:2014-06-05 10:21:29

标签: mysql sql mysql-workbench

我有一个表需要更新,具体取决于字段是否为空。 如果它是空的,我需要设置列b,否则我需要设置列c。 但是,我似乎无法让它工作,因为我的想法将导致语法错误。 以下是我想到的查询的想法:

UPDATE table_a SET
(IF a = '', 'b', 'c') = 'test';

我还需要获取更新行的计数,因此我希望我能够通过使用1个更新语句来更新表。

提前致谢

1 个答案:

答案 0 :(得分:0)

使用CASE这样的声明:

UPDATE table_a 
SET b = 
      CASE WHEN a = '' 
      THEN 'test' 
      ELSE b 
      END
, c = 
      CASE WHEN a <> '' 
      THEN 'test' 
      ELSE c 
      END 

工作演示: http://sqlfiddle.com/#!2/a823d/1

工作原理:

使用CASE,检查a = ''是否SET b = 'test,否则SET b = b。列c也是如此。