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

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



炎炎设计
浏览 2296回答 3
3回答

狐的传说

通过使用,NULL您可以区分“不输入数据”和“不输入数据”。更多区别:一个LENGTH的NULL就是NULL,一个LENGTH空字符串的是0。NULLs在空字符串之前排序。COUNT(message)将计算空字符串,但不计算NULLs您可以使用绑定变量搜索空字符串,但不能搜索NULL。该查询:SELECT  *FROM    mytable WHERE   mytext = ?无论您从客户端传递的值如何,都永远不会匹配NULLin mytext。要匹配NULLs,您必须使用其他查询:SELECT  *FROM    mytable WHERE   mytext IS NULL

繁花如伊

如果您计划切换数据库,则要考虑的一件事是Oracle不支持空字符串。它们会自动转换为NULL,您无法使用诸如这样的子句查询它们WHERE somefield = ''。

富国沪深

要记住的一件事是,NULL可能会使您的代码路径困难得多。例如,在Python中,大多数数据库适配器/ ORM都映射NULL到None。这样的事情:print "Hello, %(title)s %(firstname) %(lastname)!" % databaserow可能会导致“您好,没有Joe Doe!” 为了避免这种情况,您需要类似以下代码的内容:if databaserow.title:    print "Hello, %(title)s %(firstname) %(lastname)!" % databaserowelse:    print "Hello, %(firstname) %(lastname)!" % databaserow这会使事情变得更加复杂。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL