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

以下为验证结果:

与/或运算



非运算



异或运算



比较运算



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转换为逻辑真假的运算符

最新文章

  1. css中各种情况下的元素的垂直和水平居中的问题
  2. IIS负载均衡的NLB解决方案
  3. How to install and configure Azure PowerShell
  4. [CareerCup] 2.2 Kth to Last Element of Linked List 链表的倒数第k个元素
  5. linux 下安装rsync
  6. right way check file open and end
  7. Silverlight技术调查(3)——国际化
  8. linux下写脚本时-gt是什么意思
  9. RESTful架构2--架构详解
  10. error: WatchKit App doesn't contain any WatchKit Extensions whose WKAppBundleIdentifier matches
  11. 【★】KMP算法完整教程
  12. shell if相关参数
  13. JVM GC知识回顾
  14. gradle配置国内镜像
  15. 调皮的程序员:Linux之父雕刻在Linux内核中的故事
  16. JavaScript -- 时光流逝(十):Screen 对象、History 对象、Location 对象
  17. ReentrantLock和condition源码浅析(一)
  18. 51 IP核查询
  19. twisted reactor执行流程
  20. 开发常见错误之 : IMP-00058: 遇到 ORACLE 错误 1691

热门文章

  1. 奶盖拌饭 NKOJ8457
  2. Scalable Multi-Party Private Set-Intersection-解读
  3. Java概论——JavaSE基础
  4. Centos免密登陆
  5. BitBlt()函数实现带数字百分比进度条控件、静态文本(STATIC)控件实现的位图进度条、自定义进度条控件实现七彩虹颜色带数字百分比
  6. 前端2CSS
  7. 3D还原货拉拉女孩身亡真相,这一环值得反思!
  8. SAP Grid control( ALV Grid 列表 自定义 按钮)
  9. UiPath文本操作Get Full Text的介绍和使用
  10. Python快速下载商品数据,并连接数据库,保存数据