我有一个表需要更新,具体取决于字段是否为空。 如果它是空的,我需要设置列b,否则我需要设置列c。 但是,我似乎无法让它工作,因为我的想法将导致语法错误。 以下是我想到的查询的想法:
UPDATE table_a SET
(IF a = '', 'b', 'c') = 'test';
我还需要获取更新行的计数,因此我希望我能够通过使用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
也是如此。