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是一個字符串值,缺省爲一個逗號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章