mysql 多行转成多列一行
时间: 2023-09-04 17:12:07 浏览: 102
如果需要将多行数据转换为一行数据,可以使用MySQL的GROUP_CONCAT函数,具体的方法如下:
假设有如下的数据表:
```
+----+-------+--------+
| id | name | subject |
+----+-------+--------+
| 1 | Alice | Chinese |
| 1 | Alice | Math |
| 1 | Alice | English|
| 2 | Bob | Chinese |
| 2 | Bob | Physics|
| 2 | Bob | Chemistry|
+----+-------+--------+
```
我们需要将每个学生的科目合并成一行,可以使用如下的SQL语句:
```
SELECT id, name, GROUP_CONCAT(subject SEPARATOR ',') AS subjects
FROM table_name
GROUP BY id, name;
```
以上SQL语句使用GROUP_CONCAT函数将每个学生的科目合并成一个字符串,并使用`,`作为分隔符。最终的查询结果将包含三列,分别为学生ID、学生姓名、科目合并字符串。执行以上的SQL语句后,会得到如下的查询结果:
```
+----+-------+------------------------+
| id | name | subjects |
+----+-------+------------------------+
| 1 | Alice | Chinese,Math,English |
| 2 | Bob | Chinese,Physics,Chemistry |
+----+-------+------------------------+
```
可以看到,每个学生的科目都合并成了一个字符串,并显示在了一行内。
阅读全文