可以使用GROUP BY和GROUP_CONCAT函数将多行数据合并为一行数据。例如,考虑以下名为table1的表:
+----+-------+--------+ | id | name | score | +----+-------+--------+ | 1 | Alice | 75 | | 2 | Alice | 80 | | 3 | Alice | 85 | | 4 | Bob | 90 | | 5 | Bob | 95 | +----+-------+--------+
如果我们想将所有相同姓名的分数放在同一行中,我们可以使用以下查询:
SELECT name, GROUP_CONCAT(score ORDER BY id SEPARATOR ',') AS scores FROM table1 GROUP BY name;
结果如下:
+-------+----------+ | name | scores | +-------+----------+ | Alice | 75,80,85 | | Bob | 90,95 | +-------+----------+
在此示例中,我们使用GROUP_CONCAT函数将每个姓名的分数连接在一起,并在数据之间使用逗号作为分隔符。GROUP BY语句指定按名称分组。请注意,我们在GROUP_CONCAT函数中使用ORDER BY子句,以便按照id顺序连接分数。