group_concat,一对多SQL数据查询拼接

场景

业务需求需要,优惠券活动需要适用于不同门店,数据添加到数据库“适用门店”字段是门店主键id以逗号拼接成的;现小程序端需要将适用门店的门店名称以逗号拼接成字符串传给他们,以便页面展示;

数据库存放的数据

activity_name	dept_id
18元优惠券	0ffca0dcaf35491580c66ee477e92f4b,1,2fe59afc341e429ab7c5b313894bb380,8852dda85b3641b68e283abce6f1a846,baeea5478dc64fa58c4bbdd9e2eb56f7,ef01b43f5b38464cabaf88c1c4120af0

SQL实现

select 
a.activity_name,
group_concat(d.dept_name) as deptNames
from t_activity a
left join t_dept d
on FIND_IN_SET(d.id, a.dept_id)
where a.id = '1880ff0f8b1f4b38923360969af71d7b'

查询出的数据

activity_name	deptNames
18元优惠券	上地嘉华店,宝盛里观林园店,天津火车站店,济南店,海淀黄庄店,丰台科技园店

group_concat()函数

功能

将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

语法

select group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] ) as groupConcatData from table

说明

通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

你可能感兴趣的:(SQL相关)