mysql group concat 去重,MySQL group_concat() 函数用法

MySQL group_concat() 函数用法

在使用 group by对数据进行分组后,如果需要对 select 的数据项进行字符串拼接,这时就需要用到group_concat()函数。

1、基本用法

group_concat()完整语法如下:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符‘])

通过 distinct可以去掉重复值,order by进行排序,separator指定分隔符,默认为逗号。

user 表

3963e3dd2804cdbee2e679d238f62075.png

address 表

0b6a28688b343b792285dd90fe24d6d2.png

user与address为一对多关系,现在以user_id进行group by分组,对数据项city进行字符串拼接,写法如下:

select u.id, u.name, group_concat(ad.city) as city

from user u inner join address ad on u.id = ad.user_id

group by u.id

查询结果如下:

edcd993a18163b8dd8b0a39a7789a6dc.png

2、distinct 去重

从上文可以看到 id=2的数据项有两个广州市

select u.id, u.name, group_concat(distinct ad.city) as city

from user u inner join address ad on u.id = ad.user_id

group by u.id

结果如下:

b45c2fdf010740659e5644b22860cb7d.png

3、 order by 排序

city按照以倒序的顺序排列

select u.id, u.name, group_concat(distinct ad.city order by ad.city desc) as city

from user u inner join address ad on u.id = ad.user_id

group by u.id

结果如下:

9bfa296d9d6271413a3ac47155fcc988.png

4、separator 指定分隔符

默认分隔符为逗号,这里指定短横线 --

select u.id, u.name, group_concat(distinct ad.city order by ad.city desc separator ‘--‘) as city

from user u inner join address ad on u.id = ad.user_id

group by u.id

结果如下:

c10c3c1e18541b759b4f1a157d8b5fea.png

至此,用法介绍完毕。

MySQL group_concat() 函数用法

标签:image   desc   tor   code   用法   loading   add   lan   tps

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/CF1314/p/14235932.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值