资讯专栏INFORMATION COLUMN

MYSQL的GROUP_CONCAT函数

henry14 / 3183人阅读

函数作用

用到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去掉重复的数值,也可以多个字段拼接

感受:

这个函数不复杂,只是感觉应该会经常用到,以前总是习惯筛选之后用程序拼接,其实有些多余了.
使用场景视具体情况而定,这个都不是绝对的。希望对大家有帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/17547.html

相关文章

发表评论

0条评论

henry14

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<