MySQL 8.0发行说明
MySQL 8.0源代码文档10bet官方网站
这空值
在习惯它之前,价值可能是令人惊讶的。概念上,空值
方法“缺少未知价值“它与其他值不同地处理。
mysql> select 1为null,1不是null;+ ----------- + -------------- + |1是null |1不是空+ ----------- + -------------- + |0 |1 |+ ----------- + -------------- +
您不能使用算术比较运算符,例如=
那<
, 或者<>
测试空值
.要为您自己演示此问题,请尝试以下查询:
mysql>选择1 = null,1 <> null,1 null;+ ---------- + ---------- + ---------- + ---------- + |1 = null |1 <> null |1 null |+ ---------- + ---------- + ---------- + ---------- + |null |null |null | NULL | +----------+-----------+----------+----------+
因为任何算术比较的结果空值
也是空值
,您无法从这些比较中获得任何有意义的结果。
在mysql,0.
或空值
表示假,任何其他意味着真实。来自布尔操作的默认真值值是1
.
这种特殊的待遇空值
就是为什么在上一节中,有必要确定哪些动物不再使用死亡不是零
代替死亡<> null
.
二空值
值被视为相等的通过...分组
.
做一个时订购
那空值
如果你这样做,首先呈现值顺序... Asc
最后,如果你这样做订购... DESC
.
使用时常见错误空值
是假设无法将零或空字符串插入定义为的列中没有空
, 但这种情况并非如此。这些实际上是值,而空值
方法“没有价值。“您可以通过使用易于测试是[不] null
如图所示:
mysql> select 0为null,0不是null,''为null,''不是null;+ ----------- + -------------- + ------------ + ------------------ + |0为null |0不是null |''是null |''不是零+ ----------- + -------------- + ------------ + ------------------ + |0 |1 |0 | 1 | +-----------+---------------+------------+----------------+
因此,完全可以将零或空字符串插入到a中没有空
列,因为这些实际上是没有空
.看到B.3.4.3节“空值的问题”.