mysql多列合并一行
时间: 2023-10-14 13:26:00 浏览: 58
可以使用MySQL的GROUP_CONCAT函数将多列合并到一行。
例如,有以下表格:
```
+----+-------+--------+--------+
| id | name | class | score |
+----+-------+--------+--------+
| 1 | Tom | Math | 80 |
| 2 | Jack | Math | 85 |
| 3 | Lily | Math | 90 |
| 4 | Tom | English| 75 |
| 5 | Jack | English| 80 |
| 6 | Lily | English| 85 |
+----+-------+--------+--------+
```
要将同名学生的成绩合并到一行,可以使用以下查询:
```
SELECT name, GROUP_CONCAT(class, ':', score SEPARATOR ',') AS scores
FROM table_name
GROUP BY name
```
结果如下:
```
+------+---------------------------+
| name | scores |
+------+---------------------------+
| Jack | Math:85,English:80 |
| Lily | Math:90,English:85 |
| Tom | Math:80,English:75 |
+------+---------------------------+
```
其中GROUP_CONCAT函数将class和score列的值合并为一个字符串,以':'分隔,用','分隔不同的字符串。SEPARATOR参数指定不同字符串之间的分隔符。GROUP BY语句按照name列进行分组。