查询无法在多个列的case语句之后添加where子句

时间:2016-03-28 05:16:22

标签: mysql

我有以下查询,不能使用WHERE子句。任何帮助将不胜感激。

UPDATE abc SET
col1 = CASE
WHEN a1_date < now() THEN "xyz"
END,
col2 = CASE
WHEN a2_date < now() THEN "xyz"
END,
col3 = CASE
WHEN a3_date < now() THEN "xyz"
END

WHERE a1_date != NULL AND a2_date != NULL

2 个答案:

答案 0 :(得分:2)

WHERE子句更改为使用IS NOT NULL

WHERE a1_date IS NOT NULL AND a2_date IS NOT NULL

答案 1 :(得分:2)

引用MySQL Documentation

  

您不能使用算术比较运算符,例如=,&lt;或&lt;&gt;测试NULL。

因此,您现在的比较检查无法按预期工作。

  

要测试NULL,请使用IS NULL和IS NOT NULL运算符