【发布时间】:2012-05-07 08:08:40
【问题描述】:
是否可以让 MySQL 的 Group_Concat 函数包含空值?
考虑以下来自我的源表的示例:
userId, questionId, selectionId
7, 3, NULL
7, 4, 1
7, 5, 2
当我使用 GROUP_CONCAT 查询选择表时,我得到以下信息:
7, 4=1,5=2
我想得到以下内容:
7, 3=NULL,4=1,5=2
作为参考,我的查询如下所示:
Select userId, GROUP_CONCAT(CONCAT(questionId, '=', selectionId))
From selection
Group by userId;
我也尝试像这样添加一个 IFNULL:
Select userId, GROUP_CONCAT(IFNULL(CONCAT(questionId, '=', selectionId), 'NULL'))
From selection
Group by userId;
但这产生了以下结果:
7, NULL,4=1,5=2
注意 - 我忘记包括另一个复杂性。 selectionId 是另一个表的外键。我对 selection_text 表使用左外连接。我的真实查询包括该表中的字段(这些字段解析为 NULL,因为 selectionId 为空)。
【问题讨论】:
-
产生了应有的效果,在 selectionId 上尝试 IFNULL,而不是在 CONCAT 上。
-
但一般来说-避免使用Group Concat!
标签: mysql group-concat