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