将重复结果作为一个集合获取,其中包含MYSQL中重复行中的所有唯一值

时间:2016-12-13 08:18:02

标签: mysql

我的表(tbl)有相同bookid的重复行,我需要将其作为一个具有所有唯一值的集合获取

table1

id  bookId  format
1   123      A
2   123      B
3   123      C
4   123      D

我需要将结果设置如下

     bookID      format
      123        A,B,C,D  

加入会非常繁琐。有什么我不知道的吗?我循环吗?

2 个答案:

答案 0 :(得分:2)

使用 GROUP_CONCAT

SELECT bookID,GROUP_CONCAT(format) FROM table1 GROUP BY bookID

<强> Fiddle

答案 1 :(得分:1)

使用GROUP_CONCAT()

SELECT t.bookID,
       GROUP_CONCAT(distinct t.format ORDER BY t.format) as `format`
FROM YourTable t
GROUP BY t.bookID