• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 使用NULL值

    NULL您习惯之前,该值可能令人惊讶。从概念上讲,它NULL表示“缺少的未知值”,并且与其他值的处理方式有所不同。

    要测试NULL,请使用IS NULLIS NOT NULL运算符,如下所示:

    mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
    +-----------	+---------------	+
    | 1 IS NULL  | 1 IS NOT NULL  |
    +-----------	+---------------	+
    | 0  | 1  |
    +-----------	+---------------	+
    

    你不能使用算术比较操作符,如=<<>以测试NULL。为了自己演示这一点,请尝试以下查询:

    mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1
    > NULL;
    +----------	+-----------	+----------	+----------	+
    | 1 = NULL  | 1 <> NULL  | 1 < NULL  | 1 > NULL  |
    +----------	+-----------	+----------	+----------	+
    | NULL  | NULL  | NULL  | NULL  |
    +----------	+-----------	+----------	+----------	+
    

    由于与的任何算术比较结果NULL也为NULL,因此您无法从此类比较中获得任何有意义的结果。

    在MySQL中,0NULL表示false,其他表示true。布尔运算的默认真值是1

    特殊处理NULL是为什么在上一节中有必要使用death IS NOT NULL来代替确定哪些动物不再存活death <> NULL

    在中,两个NULL值被视为相等GROUP BY

    执行时ORDER BY,如果执行,NULL则首先显示值,如果执行ORDER BY ... ASC,则最后显示ORDER BY ... DESC

    使用时的一个常见错误NULL是假定无法在定义为的列中插入零或空字符串NOT NULL,但事实并非如此。这些实际上是值,而NULL意味着“没有值。”您可以使用这个测试很轻松地IS[NOT] NULL,如图所示:

    mysql> SELECT 0 IS NULL, 0 IS NOT NULL, '' IS NULL, '' IS NOT NULL;
    +-----------	+---------------	+------------	+----------------	+
    | 0 IS NULL  | 0 IS NOT NULL  | '' IS NULL  | '' IS NOT NULL  |
    +-----------	+---------------	+------------	+----------------	+
    | 0  | 1  | 0  | 1  |
    +-----------	+---------------	+------------	+----------------	+
    

    因此,实际上可以将零或空字符串插入NOT NULL列中NOT NULL