这有效:
SELECT IF(TRUE, 'a', 'b') IS NOT NULL;
以下失败,错误:
截断错误的INTEGER值:' 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
时 - 它可以正常工作。即,有效:
UPDATE tmp SET col1 = col1 WHERE IF(TRUE, 'a', 'b') IS NULL;
此外,在运行SELECT
查询时,也可以:
SELECT IF(TRUE, 'a', 'b') IS NOT NULL;
似乎该问题仅适用于UPDATE
,且仅适用于NOT NULL
。
怎么回事?