mysql 分组后将某列的值合并成一行

有这么个表

IDNAME
1张三
1李四
2王五
2小六

要得到以下结果:

IDNAME
1张三,李四
2王五,小六

SQL: 

select t.id,GROUP_CONCAT(t.name SEPARATOR ',') from t group by t.id

注意 GROUP_CONCAT 中只有一个参数,是一个完整字符串。

 

假如要在分组中根据某个条件进行过滤,比如原表

IDNAMEAGE
1张三18
1李四25
1王五28
2小六18
2小七22

 

要得到以下结果:

ID<20的NAME>20的NAME
1张三李四,王五
2小六小七

 

SQL: 

select 
    t.id,
    GROUP_CONCAT(CASE WHEN t.age < 20 THEN t.name END SEPARATOR ',' ) ,
    GROUP_CONCAT(CASE WHEN t.age > 20 THEN t.name END SEPARATOR ',' ) 
from t 
group by t.id

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值