group_concat函数
时间: 2023-08-30 17:09:05 浏览: 83
group_concat函数是MySQL中的一个聚合函数,它将一组数据中的某一列的值合并成一个字符串并返回。该函数的语法如下:
```
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
```
其中,expr表示要合并的列名或表达式;DISTINCT表示去重;ORDER BY表示按照指定的列或表达式进行排序;ASC或DESC表示升序或降序;SEPARATOR表示合并后的字符串之间的分隔符,默认为逗号。
例如,假设我们有如下的一张student表:
| id | name | age |
|----|------|-----|
| 1 | Tom | 18 |
| 2 | Jack | 19 |
| 3 | Amy | 20 |
| 4 | Tom | 22 |
| 5 | Jack | 21 |
如果我们要将所有学生的名字合并成一个字符串,可以使用以下SQL语句:
```
SELECT GROUP_CONCAT(name) FROM student;
```
执行结果为:
```
Tom,Jack,Amy,Tom,Jack
```
如果我们要去重并按照年龄升序排序,可以使用以下SQL语句:
```
SELECT GROUP_CONCAT(DISTINCT name ORDER BY age ASC SEPARATOR ' | ') FROM student;
```
执行结果为:
```
Tom | Jack | Amy
```
阅读全文