group_concat 函数怎么用
时间: 2023-09-26 19:11:54 浏览: 90
GROUP_CONCAT 函数用于将多行数据的某一列合并成一个字符串,常用于 GROUP BY 分组后的结果的聚合操作。其语法如下:
```
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
```
其中:
- `DISTINCT` 可选,表示只选择不同的值;
- `expr` 是要合并的列名或者表达式;
- `ORDER BY` 可选,指定合并后的字符串的排序方式,可以是列名、表达式或者数字,也可以指定排序方式;
- `SEPARATOR` 可选,指定合并后的字符串的分隔符,默认为逗号。
下面是一个例子:
假设我们有一个表,包含以下数据:
```
+----+-------+-------+
| id | name | score |
+----+-------+-------+
| 1 | Alice | 85 |
| 2 | Bob | 90 |
| 3 | Alice | 95 |
| 4 | Bob | 80 |
| 5 | Carol | 70 |
+----+-------+-------+
```
我们可以使用 GROUP_CONCAT 函数将同名的学生的成绩合并成一个字符串,如下所示:
```
SELECT name, GROUP_CONCAT(score ORDER BY score DESC SEPARATOR ',') AS score_list
FROM table_name
GROUP BY name;
```
结果如下:
```
+-------+------------+
| name | score_list |
+-------+------------+
| Alice | 95,85 |
| Bob | 90,80 |
| Carol | 70 |
+-------+------------+
```
这样,我们就可以很方便地将多行数据的某一列合并成一个字符串了。
阅读全文