MYSQL中GROUP_CONCAT用法
时间: 2023-07-28 07:28:10 浏览: 26
GROUP_CONCAT 是 MySQL 中的聚合函数之一,用于将行数据按照一定的顺序合并成一个字符串。其基本语法如下所示:
```
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC], ...]
[SEPARATOR str_val])
```
其中:
- `DISTINCT` 可选,表示去重。
- `expr` 是要合并的列或表达式。
- `ORDER BY` 可选,表示合并后的字符串排序方式。
- `SEPARATOR` 可选,表示合并后的字符串分隔符。
示例:
假设有以下 `score` 表:
| id | name | score |
|----|------|-------|
| 1 | Tom | 100|
| 2 | Tom | 90|
| 3 | Tom | 80|
| 4 | Jack | 70|
| 5 | Jack | 60|
| 6 | Mike | 50|
如果我们要将 `score` 表按照 `name` 字段分组,并将每组的分数合并成一个字符串,可以使用如下 SQL 语句:
```
SELECT name, GROUP_CONCAT(score ORDER BY score DESC SEPARATOR '、') AS scores
FROM score
GROUP BY name;
```
执行结果如下:
| name | scores |
|------|--------|
| Jack | 70、60 |
| Mike | 50 |
| Tom | 100、90、80 |
其中,`GROUP_CONCAT(score ORDER BY score DESC SEPARATOR '、')` 表示按照 `score` 字段降序排列,使用逗号作为分隔符将每个分数合并成一个字符串。
相关推荐

















