数据库group_concat的用法
时间: 2023-10-10 07:06:07 浏览: 80
`GROUP_CONCAT` 函数是 MySQL 中的一个聚合函数,它将指定列的所有行连接成一个字符串。该函数通常与 `GROUP BY` 语句一起使用,用于将每个分组中的数据拼接成一个字符串。
`GROUP_CONCAT` 函数的语法如下:
```
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
```
参数说明:
- `DISTINCT`:可选参数,表示去重。
- `expr`:要连接的列名或者表达式。
- `ORDER BY`:可选参数,表示排序方式。
- `ASC` 或 `DESC`:可选参数,表示升序或降序排列。
- `SEPARATOR`:可选参数,表示连接字符串之间的分隔符。
示例:
假设我们有以下一张表 `person`:
```
+----+-------+-------+
| id | name | group |
+----+-------+-------+
| 1 | Alice | A |
| 2 | Bob | A |
| 3 | Cindy | B |
| 4 | David | B |
| 5 | Emma | B |
+----+-------+-------+
```
我们可以使用 `GROUP_CONCAT` 函数将每个分组中的 `name` 列拼接起来,以逗号分隔:
```
SELECT `group`, GROUP_CONCAT(name SEPARATOR ',') AS `names`
FROM `person`
GROUP BY `group`;
```
执行结果:
```
+-------+-------------+
| group | names |
+-------+-------------+
| A | Alice,Bob |
| B | Cindy,David,Emma |
+-------+-------------+
```
阅读全文