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

Posted

技术标签:

【中文标题】MySQL可以自动将空字符串转换为NULL吗?【英文标题】:Can MySQL automatically convert empty strings to NULL? 【发布时间】:2012-11-03 14:01:01 【问题描述】:

这里有一个很好的关于 mysql 空字符串与 NULL 的 SO,MySQL, better to insert NULL or empty string?,但是它没有考虑“一致性” - 即如果你想在你的表中只有一个选择(即空字符串或NULL),应该是哪个?

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

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

【问题讨论】:

【参考方案1】:

作为 NULLIF 的替代方法,您可以将默认值设置为 NULL 并且不传递空字段。

【讨论】:

【参考方案2】:

你可以用NULLIF()括住你的字符串

你可以这样使用它:

NULLIF('test','') --> returns 'test'
NULLIF(''    ,'') --> returns NULL

【讨论】:

NULLIF 如果NULLIF(string1, string2)的第一个和第二个参数匹配,则返回NULL

以上是关于MySQL可以自动将空字符串转换为NULL吗?的主要内容,如果未能解决你的问题,请参考以下文章

将mysql数据导出到csv时不要将NULL值转换为空字符串

使用 Json 反序列化在 Java 中自动将空字符串转换为 null

将ORACLE中查询结果为空字符串的变成null该怎么做

MySQL中如何排除null和空字符串的条件

JsonModel NSString 将 null 转换为空字符串

PostgreSQL - 我有啥办法可以定义一个在插入或更新时将空字符串转换为 null 的列?