0

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

因此,例如,我有一个表“数据”,其中包含字段 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

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

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

4

3 回答 3

2

使用IFNULL

SELECT id, IFNULL(field1,''), IFNULL(field2,''), IFNULL(field3,'')
FROM data
于 2013-01-18T11:21:06.317 回答
0

LEFT JOIN - 这就是答案。

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

当然,我在原始问题中“ [附加信息] ”之前提供的信息并不是全部。对不起,伙计们,我的错。Salil 根据我最初提供的信息正确回答。

于 2013-01-18T19:09:34.330 回答
0
SELECT id, COALESCE(field1,''), COALESCE(field2,''), COALESCE(field3,'')
FROM   data
于 2013-01-18T11:19:45.873 回答