我在一个有很多不同领域的网站上有一个表格。有些字段是可选的,而有些是强制性的。在我的数据库中,我有一个包含所有这些值的表,在用户没有放置任何数据的数据库列中插入 NULL 值或空字符串是更好的做法吗?
通过使用NULL可以区分“不放数据”和“放空数据”。
NULL
还有一些区别:
一个LENGTH是,一个空字符串NULL是。NULL``LENGTH``0
LENGTH
NULL``LENGTH``0
NULLs 在空字符串之前排序。
COUNT(message)将计算空字符串但不计算NULLs
COUNT(message)
您可以使用绑定变量搜索空字符串,但不能搜索NULL. 这个查询:
SELECT *
FROM mytable WHERE mytext = ?
永远不会匹配 a NULLin mytext,无论您从客户端传递什么值。要匹配NULLs,您必须使用其他查询:
mytext
SELECT * FROM mytable WHERE mytext IS NULL