您好!欢迎访问家园网-www.jy.wang!

家园网

mysql之group_concat函数详解

网络 作者:本站 点击:

1 功能

将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

2 函数语法

group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )

语法说明:通过使用distinct可以排除重复值;

如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

3 案例

3.1 创建数据库表

表:score(数据库是:mybatis)

1.png

3.2 查询

查询1:

查询:查询分数表(score)中的用户ID(id)和分数(score )

SELECT id,score FROM mybatis.score;

查询结果:

001.png

查询2:

查询: 以用户ID(id)分组,把分数(score)字段的值在同一行打印出来,逗号分隔(默认)

select id, group_concat(score) from mybatis.score group by id;

查询结果:

2.png


查询3:

查询:以用户ID(id)分组,把分数(score)字段的值在一行打印出来,分号分隔

SELECT id,group_concat(score separator ‘;’) FROM mybatis.score GROUP BY id;

查询结果:

3.png


查询4:

查询:以用户ID(id)分组,把去除重复冗余的分数(score)字段的值打印在一行,逗号分隔

SELECT id,group_concat(distinct score) FROM mybatis.score GROUP BY id;

查询结果:

4.png


查询5:

查询:以用户ID(id)分组,把分数(score)字段的值去重打印在一行,逗号分隔,按照score倒序排列

SELECT id,group_concat(distinct score order by score desc) FROM mybatis.score GROUP BY id;

查询结果:

5.png

标签: