函数作用
用到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去掉重复的数值,也可以多个字段拼接
感受:
这个函数不复杂,只是感觉应该会经常用到,以前总是习惯筛选之后用程序拼接,其实有些多余了.
使用场景视具体情况而定,这个都不是绝对的。希望对大家有帮助。