zoukankan      html  css  js  c++  java
  • MySQL中有关NULL的计算

    mysql> select NULL=NULL; #判断两个NULL是否相等,结果不是1也不是0
    +-----------+
    | NULL=NULL |
    +-----------+
    |      NULL |
    +-----------+
    1 row in set (0.00 sec)
    
    mysql> select NULL<>NULL,NULL!=NULL; #判断两个NULL是否不相等,结果不是1也不是0
    +------------+------------+
    | NULL<>NULL | NULL!=NULL |
    +------------+------------+
    |       NULL |       NULL |
    +------------+------------+
    1 row in set (0.00 sec)
    
    mysql> select NULL<=>NULL; #判断两个NULL是否相等
    +-------------+
    | NULL<=>NULL |
    +-------------+
    |           1 |
    +-------------+
    1 row in set (0.00 sec)
    
    mysql> select NULL is NULL; #判断两个NULL是否相等
    +--------------+
    | NULL is NULL |
    +--------------+
    |            1 |
    +--------------+
    1 row in set (0.00 sec)
    
    mysql> select NULL is NOT NULL; #判断两个NULL是否不相等
    +------------------+
    | NULL is NOT NULL |
    +------------------+
    |                0 |
    +------------------+
    
    mysql> select not NULL; #对NULL取非
    +----------+
    | not NULL |
    +----------+
    |     NULL |
    +----------+
    1 row in set (0.00 sec)
    
    mysql> select 1 and NULL, NULL and NULL;
    +------------+---------------+
    | 1 and NULL | NULL and NULL |
    +------------+---------------+
    |       NULL |          NULL |
    +------------+---------------+
    1 row in set (0.00 sec)
    
    mysql> select 1 or NULL, NULL or NULL,0 or NULL;
    +-----------+--------------+-----------+
    | 1 or NULL | NULL or NULL | 0 or NULL |
    +-----------+--------------+-----------+
    |         1 |         NULL |      NULL |
    +-----------+--------------+-----------+
    1 row in set (0.00 sec)
    

      总结:

      尽量使用 <=>、is null 、is not null 对NULL进行判断,否则得到的结果都是NULL;

      NULL进行与和非运算时,结果都是null,然后NULL和一个值为true的值取或,结果为1,否则结果都为NULL;

      上面的总结比较混乱,因为NULL可以理解为一个变量的值是未知的,他可能为true,可能为false(相对于bool值),那么在进行运算时,就要考虑两种情况,其中一种情况为false时,总的结果就是NULL。

  • 相关阅读:
    QQ企业通--客户端登陆模块设计---知识点2
    C# Show()与ShowDialog()的区别-----转载
    docker入门学习
    人生感悟
    mysql权限管理命令
    JAVA程序员工作常用英语(细心整理)
    spring知识梳理
    快速搭建MHA
    MySQL Performance Schema都建议开启哪些监控采集指标(除了默认自动开启的指标)
    慢SQL引发MySQL高可用切换排查全过程
  • 原文地址:https://www.cnblogs.com/-beyond/p/8554483.html
Copyright © 2011-2022 走看看