如何在没有聚合函数的情况下在MySQL中执行GROUP_CONCAT?

时间:2016-10-23 06:19:48

标签: mysql sql

我正在使用mysql工作台并处理一项要求。

这是我的表数据

ID  Name
1   A
1   B
2   C
2   D
3   E
3   F

预期产出

ID  Name
1   A,B
2   C,D
3   E,F

我已经使用GROUP_CONCAT函数获得了输出。但是我想在不使用这些功能的情况下解决这个问题。

我知道它可能但不能转向设计逻辑来克服这个问题。

有什么建议吗?

先谢谢!!

1 个答案:

答案 0 :(得分:1)

select      id
           ,max(names) as names

from       (select       @prev_id   := @id                                                                          as previous_id
                        ,@id        := t.id                                                                         as id
                        ,@name      := case t.id when @prev_id then concat_ws(',',@name,t.name) else t.name end     as names

                        ,name

            from        t

            order by    t.id
                       ,t.name
            ) t

group by    id
;