函式作用
用到group by時, 能將相同的行組合起來。
函式語法
group_concat( [DISTINCT] 要連線的欄位 [Order BY 排序欄位 ASC/DESC] [Separator `分隔符`] )
例子
比如我們有一個商品規格表,我想在後臺看到不同種類的商品都有哪些規格,id代表商品種類,spec代表商品規格
商品規格表
id | spec
1 | 黃色
1 | 綠色
3 | 100g
3 | 60g
4 | 38m
那麼我們就可以這麼寫
以id分組,把spec欄位的值列印在一行,按照spec倒序排列
select id,group_concat(spec order by spec) from 規格表 group by id;
|1 | 黃色,綠色|
|3 | 60g,100g|
|4 | 38m|
預設是以逗號分隔,我們也可以改成分號
select id,group_concat(spec separator `;`) from 規格表 group by id;
|1 | 黃色;綠色|
|3 | 60g;100g|
|4 | 38m|
補充:
還可以用distinct去掉重複的數值,也可以多個欄位拼接
感受:
這個函式不復雜,只是感覺應該會經常用到,以前總是習慣篩選之後用程式拼接,其實有些多餘了.
使用場景視具體情況而定,這個都不是絕對的。希望對大家有幫助。