我正在尝试在SQL查询中创建groupconcat。以下是表中的数据,但未获得预期的结果。
表:用户
id name groupflag
------------------------------
1 san1 0
2 san2 0
3 san3 277
4 san4 277
5 san5 277
6 san6 288
7 san7 288
我需要以下格式的结果,需要对具有groupflag不等于0的名称字段进行分组配置,
名称字段应基于groupflag值按逗号分组
id name groupflag
-------------------------------------------
1 san1 0
2 san2 0
3 san3,san4,san5 277
6 san5,san6 288
这是我的查询:
SELECT IF(users.groupflag <> 0 ,GROUP_CONCAT(users.name SEPARATOR ','),'')
AS name FROM users
GROUP BY groupflag
最佳答案
您可以使用UNION
组合两个单独的查询:
SELECT name, groupflag
FROM users
WHERE groupflag = 0
UNION ALL
SELECT GROUP_CONCAT(name), groupflag
FROM users
WHERE groupflag <> 0
GROUP BY groupflag
在sqlfiddle上查看。