MYSQL NULL和 空 区别
- 首先、mysql处理NULL,是给 NULL字段一个特殊标记、即特殊处理 NULL != “”
NULL 除了在每行的行首存有 NULL 标志位,实际存储不占有任何空间。如果表中所有字段都是非 NULL,就不存在这个标示位了。
NULL使用上的一些问题。
- 在 min / max / sum / avg 中 NULL 值会被直接忽略掉
- 对 NULL 做加减操作,如 1 + NULL,结果仍是 NULL
- order by 以升序检索字段的时候 NULL 会排在最前面(倒序相反)会排在最前面(倒序相反)
- group by / distinct 时,NULL 值被视为相同的值
- 字段是字符时,你无法一目了然的区分这个值到底是 NULL ,还是字符串 ‘NULL’
- 统计包含 NULL 字段的值,NULL 值不包括在里面
- 如果你用 length 去统计一个 VARCHAR 的长度时,NULL 返回的将不是数字