这样做有效:
SELECT IF(TRUE, 'a', 'b') IS NOT NULL;
以下操作失败并出现错误:
截断的整数值不正确:“a”:
CREATE TABLE tmp(col1 CHAR(10));
UPDATE tmp SET col1 = col1 WHERE IF(TRUE, 'a', 'b') IS NOT NULL;
为什么?
还有,在做 IS NULL
而不是 IS NOT NULL
-它起作用了。i、 例如,这是有效的:
UPDATE tmp SET col1 = col1 WHERE IF(TRUE, 'a', 'b') IS NULL;
另外,在运行 SELECT
查询时,它也起作用:
SELECT IF(TRUE, 'a', 'b') IS NOT NULL;
似乎问题只在于 UPDATE
,并且只有 NOT NULL
.
怎么会?
更新:这可能是MySQL5.7中的一个新问题。我在MySQL5.5上进行了测试,结果成功了,但我还是报告了同样的问题作为警告:
暂无答案!
目前还没有任何答案,快来回答吧!