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

时间:2013-01-18 11:17:47

标签: mysql select null

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

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

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

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

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

谢谢!

[其他信息]

在我收到回复之前,我忘记提及这一点,所以我不确定它是否会改变答案。

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

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

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

我相信连接会阻止某些行在我的结果集中返回。我该如何处理?

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

3 个答案:

答案 0 :(得分:2)

使用IFNULL

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

LEFT JOIN - 这就是答案。

我刚刚将INNER JOINS更改为LEFT JOINS,现在我获得了所有行,包括id字段为空的行。

当然,我在中提供的信息 [其他信息] 在我原来的问题中并不是全部。对不起,伙计们,我的坏人。 Salil根据我最初提供的信息正确回答。