MySQL 采用三值逻辑
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
。
以下为验证结果:
与/或运算
非运算
异或运算
比较运算
总结一下:
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
转换为逻辑真假的运算符
Original: https://www.cnblogs.com/CounterX/p/16181323.html
Author: 计数寄存器
Title: MySQL的三值逻辑
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/713949/
转载文章受原作者版权保护。转载请注明原作者出处!