如何使用group_concat这样的数据?

时间:2015-04-06 12:16:58

标签: mysql sql

如果我在MySQL中有一个包含以下数据的表:

如果表有四条记录。

id   color
1    red
2    blue
3    yellow
4    pink

然后我想要像

这样的结果
id  color
1   red, blue, yellow & pink

如果表有两个记录,那么

id   color
1    red
2    pink

然后我想要像

这样的结果
id  color
1   red & pink

我希望使用mysql获得此结果。

1 个答案:

答案 0 :(得分:1)

你可以通过连接字符串和第一个" n - 1"来实现这一点。元素并添加到最后一个:

select concat(substring_index(list, ', ', cnt - 1), ' & ',
              substring_index(list, ', ', -1)  
             )               
from (select group_concat(color separator ', ') as list, count(*) as cnt
      from table t
     ) t;

注意:如果表只有一行,则需要额外的逻辑。