SELECT 1 = 1; SELECT 1 = 2; SELECT 1 = NULL; SELECT 1 != NULL;
上面四条语句的结果分别为:
可见MySQL采用三值逻辑,1
, 0
, NULL
IN
语句首先选择一个表t1
:
如果采用IN
语句,则正常运行。但如果采用NOT IN
语句,则结果为空集。
IN
语句将值分别与集合中的元素进行判断并进行或运算OR
,而FALSE OR NULL
的结果为NULL
。
以下为验证结果:
与/或运算
非运算
异或运算
比较运算
IS
运算符
总结一下:
TRUE OR NULL
结果为 TRUE
FALSE OR NULL
结果为 NULL
TRUE AND NULL
结果为 NULL
FALSE AND NULL
结果为 FALSE
NOT NULL
结果为 NULL
NULL XOR TRUE/FALSE/NULL
结果为 NULL
NULL = NULL
结果为 NULL
IS NULL
是唯一可以将NULL
转换为逻辑真假的运算符