比如 table 中的字段 a 未 null,select * from t where a!=4,结果是查不出来的,为什么要这样设计的呢
比如 table 中的字段 a 未 null,select * from t where a!=4,结果是查不出来的,为什么要这样设计的呢
|
1
|
|
momocraftSep 4, 2018
2
可以想成 null 是 nan 的非数字版..
|
|
msg7086Sep 4, 2018
3
因为 NULL 不是一个「值」,而是「没有值」。「没有值」不满足「值不等于 4 」这个条件。
|
|
MacSep 4, 2018
4
所以 mysql 尽量不要默认值是 NULL
|
|
ChemistSep 4, 2018 via iPhone
5
一开始设计上的问题。如果是状态这种概念要避免出现 null 出现的,每个状态必须有特定含义,而且要有状态转移图啊。如果不能改表将 null 改成默认 0 之类的话,就只能程序上加上处理 null 的情况了。
|
|
CANTISep 4, 2018
6
sql 本身是三值逻辑的,除了 true、false 之外还有 unknow 来表示未知或者不适用,null 来表示 unknown, 如果包含有 null 值就不能简单的用 true 和 false 这种布尔类型来作为判定条件
|
|
FinestSep 4, 2018
7
is null or !=4
|
|
mmdsunSep 5, 2018 via Android
8
null 是没有值。where a!=4 and a is null
|