我想转此
UPDATE table_name
SET
col_1 = CASE id
WHEN 123 THEN '333'
WHEN 124 THEN '334'
END,
col_2 = CASE id
WHEN 123 THEN 'blah1'
WHEN 124 THEN 'blah2'
END
WHERE id IN (123,124)
进入这个
UPDATE table_name
SET
col_1 = CASE id
WHEN 123 AND col_3='' AND col_4='' THEN '333'
WHEN 124 AND col_3='' AND col_4='' THEN '334'
END,
col_2 = CASE id
WHEN 123 AND col_3='' AND col_4='' THEN 'blah1'
WHEN 124 AND col_3='' AND col_4='' THEN 'blah2'
END
WHERE id IN (123,124)
或者这个
UPDATE table_name
SET
col_1 = CASE id
WHEN 123 AND col_3<>'' AND col_4='' THEN '333'
WHEN 124 AND col_3<>'' AND col_4='' THEN '334'
END,
col_2 = CASE id
WHEN 123 AND col_3<>'' AND col_4='' THEN 'blah1'
WHEN 124 AND col_3<>'' AND col_4='' THEN 'blah2'
END
WHERE id IN (123,124)
但它没有用。
因此,对于每条记录,除非某些列为空或已填充或空和已填充的组合,否则请勿更新。
答案 0 :(得分:2)
将case id
的语法更改为case when id=
UPDATE table_name
SET
col_1 = CASE
WHEN id=123 AND col_3<>'' AND col_4='' THEN '333'
WHEN id=124 AND col_3<>'' AND col_4='' THEN '334'
END,
col_2 = CASE
WHEN id=123 AND col_3<>'' AND col_4='' THEN 'blah1'
WHEN id=124 AND col_3<>'' AND col_4='' THEN 'blah2'
END
WHERE id IN (123,124)