将多行值组合为单个

时间:2017-04-11 09:35:32

标签: mysql sql

行数很少:

Id marks 
1  15   
1  16
1  17  
2  6
2  15
3  9
3  10

我想将所有id合并到一行中 输出如下:

 Id  marks1 marks2 marks3 
 1   15    16      17
 2   6     15
 3   9     10

1 个答案:

答案 0 :(得分:1)

在mysql中将字段连接成单个字段非常简单。它有功能。 CONCAT()。更好的是,如果您想要使用相同的字符串分隔它们,可以使用CONCAT_WS()。与分隔符连接,第一个参数是分隔符,在你想要加入的字段之后是任何其他参数。

  

http://www.w3resource.com/mysql/string-functions/mysql-concat_ws-function.php

SELECT id, CONCAT_WS(' ', marks1, marks2, marks3) as 'mark1 | mark2 | mark3' from my_table group by id;

<强>更新

我想我误解了你的架构结构。我认为你真正想要的是GROUP_CONCAT()

  

http://www.w3resource.com/mysql/aggregate-functions-and-grouping/aggregate-functions-and-grouping-group_concat.php

SELECT id, GROUP_CONCAT(marks) as 'All Marks' from my_table group by id;