我在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函数得到了输出。但是我想不使用这样的函数来解决这个问题。
我知道这是有可能的,但我无法通过设计逻辑来解决这个问题。
有什么建议吗?
提前谢谢!!
最佳答案
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
;