一尘不染

MySQL,最好插入NULL或空字符串?

mysql

我在一个网站上有一个表格,该表格有很多不同的领域。一些字段是可选的,而某些字段是必填的。在我的数据库中,我有一个包含所有这些值的表,是否将NULL值或空字符串插入用户未放置任何数据的DB列中是更好的做法?


阅读 257

收藏
2020-05-17

共1个答案

一尘不染

通过使用,NULL您可以区分“不输入数据”和“不输入数据”。

更多区别:

  • 一个LENGTHNULL就是NULL,一个LENGTH空字符串的是0

  • NULLs在空字符串之前排序。

  • COUNT(message)将计算空字符串,但不计算NULLs

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

    SELECT  *
    

    FROM mytable
    WHERE mytext = ?

无论您从客户端传递的值如何,都永远不会匹配NULLin mytext。要匹配NULLs,您必须使用其他查询:

    SELECT  *
FROM    mytable 
WHERE   mytext IS NULL
2020-05-17