MySQL的三值逻辑

MySQL 采用三值逻辑

SELECT 1 = 1;
SELECT 1 = 2;
SELECT 1 = NULL;
SELECT 1 != NULL;

上面四条语句的结果分别为:
image
可见MySQL采用三值逻辑,1, 0, NULL

影响

IN语句

首先选择一个表t1:
image
如果采用IN语句,则正常运行。但如果采用NOT IN语句,则结果为空集。
image

猜测与验证

IN语句将值分别与集合中的元素进行判断并进行或运算OR,而FALSE OR NULL的结果为NULL
以下为验证结果:
与/或运算
image
非运算
image
异或运算
image
比较运算
image
IS运算符
image

总结一下:

  • 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转换为逻辑真假的运算符
posted @   计数寄存器  阅读(231)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示