mysql 多行到一行
时间: 2023-08-05 20:38:09 浏览: 107
在 MySQL 中,可以使用 GROUP_CONCAT 函数将多行数据合并为一行数据。
GROUP_CONCAT 函数将多个值连接在一起,返回一个字符串,可以指定分隔符。下面是一个例子:
假设我们有一个名为 students 的表,其中包含每个学生的姓名和所选课程的 ID,每个学生可能选了多门课程,表结构如下:
```
+----+--------+-----------+
| id | name | course_id |
+----+--------+-----------+
| 1 | Alice | 1 |
| 2 | Bob | 1 |
| 3 | Charlie| 2 |
| 4 | Alice | 3 |
+----+--------+-----------+
```
现在我们想将每个学生选的所有课程 ID 合并到一行中,以逗号分隔。可以使用以下 SQL 语句实现:
```
SELECT name, GROUP_CONCAT(course_id SEPARATOR ',') AS courses
FROM students
GROUP BY name;
```
执行以上语句后,将得到以下结果:
```
+--------+---------+
| name | courses |
+--------+---------+
| Alice | 1,3 |
| Bob | 1 |
| Charlie| 2 |
+--------+---------+
```
以上语句将每个学生的姓名和所选课程 ID 合并到了一行中,以逗号分隔。
阅读全文