MySQL能自动将空字符串转换为NULL吗?

22

这里有一个关于MySQL空字符串与NULL的很好的SO,MySQL,插入NULL还是空字符串更好?, 但它没有考虑到“一致性” - 即如果您想在表中只有一个选项(即空字符串或NULL),应该选择哪个?

我的问题是,我能否让MySQL自动将空字符串存储为NULL?

阅读之前的SO后,我通常倾向于存储NULL,但问题是我有很多PHP表单具有可选字段,并且(如果留空)这些字段返回空字符串。

2个回答

46
你可以用 NULLIF() 包裹你的字符串。
你可以这样使用它:
NULLIF('test','') --> returns 'test'
NULLIF(''    ,'') --> returns NULL

4
NULLIF是MySQL中的一个控制流函数,用于比较两个表达式。如果这两个表达式相等,则返回NULL。否则,返回第一个表达式的值。 - Andrei
2
如果 NULLIF(string1, string2) 的第一个和第二个参数匹配,则返回 NULL - Lemmings19

2

与NULLIF相反,您可以将默认值设置为NULL,并且不要传递空字段。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接