我正在使用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函数获得了输出。但是我想在不使用这些功能的情况下解决这个问题。
我知道它可能但不能转向设计逻辑来克服这个问题。
有什么建议吗?
先谢谢!!
答案 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
;