SQL函数Group_concat用法

今天刷力扣sql1484出现一个新的函数GROUP_CONCAT(可能是我见的少),现总结如下

完整语法如下

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

假设有如下testgroup表:

SELECT * FROM testgroup

表结构与数据如上

现在的需求就是每个id为一行(即按照id进行分组)在前台每行显示该id所有分数,要达到如下效果

 可以看到 根据id 分成了三行 并且分数默认用 逗号 分割 但是有每个id有重复数据 接下来去重,代码如下

SELECT id,GROUP_CONCAT(DISTINCT score) FROM testgroup GROUP BY id

降序排序(升序只需换成asc)

SELECT id,GROUP_CONCAT(score ORDER BY score DESC) FROM testgroup GROUP BY id

 最后可以设置分隔符(以;作为分隔符)

SELECT id,GROUP_CONCAT(score SEPARATOR ';') FROM testgroup GROUP BY id

从而达到需要目的。

更多函数用法参见:MySQL教程之concat以及group_concat的用法 (baidu.com)

 菜鸟教程:MySQL 函数 | 菜鸟教程 (runoob.com)

posted @ 2022-06-08 14:06  Chen洋  阅读(458)  评论(0编辑  收藏  举报