非常奇怪的“截断不正确的整数值”-仅在更新时出错

bq9c1y66  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(154)

这样做有效:

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上进行了测试,结果成功了,但我还是报告了同样的问题作为警告:

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题