将多个行值合并为单个行值

  • 本文关键字:合并 单个行 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

在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;

最新更新