Mysql group_concat为空字段添加分隔符

时间:2014-03-20 08:24:42

标签: mysql sql group-concat

这里有一个示例架构: http://sqlfiddle.com/#!2/c0723a/2

查询为select id,group_concat(val) from test group by id

结果是

  

ID GROUP_CONCAT(VAL)
1,66,66,,203,214,204

我想在没有逗号的情况下连接val字段以获取像这样的空记录

  

ID GROUP_CONCAT(VAL)
1 64,66,203,214,204

3 个答案:

答案 0 :(得分:4)

只需使用替换

即可
select id,replace(group_concat(val),',,',',') from test group by id

或者您可以使用 IF

select id,group_concat(if(val ='',null, val)) from test group by id

或者您可以使用 NULLIF

select id,group_concat(Nullif(val,'')) from test group by id

<强> Fiddle Demo

答案 1 :(得分:2)

SELECT id, GROUP_CONCAT(val) FROM test 
WHERE val is not null AND val <> '' 
GROUP BY id

答案 2 :(得分:1)

添加IF项检查,GROUP_CONCAT会跳过NULL值。

select id, group_concat(IF(val = '', null, val)) from test group by id

<强> THE SQLFIDDLE.