mysql - 在 mysql 语句中返回 null 或空字符串

标签 mysql select null

我需要运行查询的表的字段可以有 NULL 值、空字符串或一些文本、数字等。

例如,我有一个表“data”,其中包含字段 id、field1、field2、field3、field4。

id 是自动递增键,因此将有一个值,但其他三个字段可以具有上述任何实例。

因此对表进行查询的结果可能是 id=1, field1=NULL, field2='', field3='some text', field4='5'。

如何在 SELECT 语句中为每个 NULL 字段返回一个空字符串?

谢谢!

[其他信息]

我忘记提及这一点,直到我已经收到一些回复,所以我不确定它是否会改变答案。

此外,表中的某些字段是另一个表中的 ID,因此我正在执行内部联接,但“数据”表中的 id 字段中可能有也可能没有值。

使用上面的“数据”表,如果 field4 是 5(而不是上面最初定义的“5”)并且是表“名称”的 id,我会有一个看起来像这样的连接:

INNER JOIN name n ON n.id = data.field4

我相信是联接阻止了某些行返回到我的结果集中。我该如何处理?

如果有人已经回答,谢谢并抱歉。

最佳答案

使用IFNULL

SELECT id, IFNULL(field1,''), IFNULL(field2,''), IFNULL(field3,'')
FROM data

关于mysql - 在 mysql 语句中返回 null 或空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14397802/

相关文章:

php - Mysql 两个参数错误

mysql - 两次指定表名作为更新目标和单独的数据源

vim - 通过腻子在 Vim 中选择多页文本 block 时向上/向下滚动

c# - 返回为 null 的二维数组

arrays - 如何将多个向量(包含空向量)合并为一个新的向量?

php - 这个 MySQL 查询语法有什么问题?

MySQL 空日期不会被查询过滤掉

mysql - 选择当前时间距时间戳至少 60+ 分钟的 mysql 语句

MySQL 在 'a' 中选择 (`field` )

php - 检查值是否为 isset 和 null