+
95
-

mysql中null与空值有什么区别?

请问mysql中null与空值有什么区别?

网友回复

+
15
-

一、长度不同:

NULL长度就是NULL,一个空字符串的长度是0。

二、排序:

NULL在空字符串之前排序。

三、count统计

COUNT(message)将包含含空字符串的字段,但不计算值为NULL的字段。

四、where查询

您可以使用绑定变量搜索空字符串,但不能搜索NULL。该查询:

SELECT * FROM mytable WHERE mytext = ?
无论您从客户端传递的值是什么,都永远不会匹配NULL的字段。要匹配NULL,您必须使用其他查询:

SELECT * FROM mytable WHERE mytext IS NULL

五、实例讲解

例如,以下语句完全不同:

mysql> INSERT INTO my_table (phone) VALUES (NULL);
mysql> INSERT INTO my_table (phone) VALUES ('');

这两个语句都会在该phone列中插入一个值,但是第一个语句将插入一个 NULL值,第二个语句将 插入一个空字符串。

第一个的含义可以视为 “未知电话号码”,第二个的含义可以视为“已知该人没有电话,因此也没有电话号码”。” 为了帮助NULL处理,可以使用 I...

点击查看剩余70%

我知道答案,我要回答