group_concat和concat的区别
时间: 2023-09-08 13:14:10 浏览: 110
`concat` 和 `group_concat` 都是 MySQL 中的字符串拼接函数,但它们有一些区别:
- `concat` 可以接收多个参数,将它们按照顺序拼接起来形成一个字符串,而 `group_concat` 一般用于聚合操作,将多个行中的某个字段的值拼接成一个字符串。
- `concat` 返回的是拼接后的字符串,而 `group_concat` 返回的是拼接后的字符串列表,其中每个字符串之间以逗号分隔(默认分隔符)。
- `group_concat` 还可以指定分隔符,例如 `group_concat(field_name SEPARATOR '|')` 将会使用竖线 `|` 作为分隔符。
举个例子,如果我们有如下的表:
```
+----+---------+-------+
| id | name | score |
+----+---------+-------+
| 1 | Alice | 85 |
| 2 | Bob | 72 |
| 3 | Charlie | 90 |
+----+---------+-------+
```
使用 `concat` 可以将 `name` 和 `score` 拼接成一个字符串:
```
SELECT CONCAT(name, ' scored ', score, ' points') AS result FROM table;
+------------------------+
| result |
+------------------------+
| Alice scored 85 points |
| Bob scored 72 points |
| Charlie scored 90 points |
+------------------------+
```
而使用 `group_concat` 可以将 `name` 字段的值拼接成一个字符串:
```
SELECT GROUP_CONCAT(name SEPARATOR ', ') AS result FROM table;
+------------------------+
| result |
+------------------------+
| Alice, Bob, Charlie |
+------------------------+
```
阅读全文