GROUP_CONCAT() 多行数据合并成一行

本文介绍MySQL中GROUP_CONCAT()函数的应用场景与方法,包括如何与GROUP BY结合使用来处理一对多的数据关系,实现多条记录合并为一条记录的需求,并提供了具体的SQL示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL多选数据合并成为一行--GROUP_CONCAT()

当数据中出现一对多,且需要把多的数据转换为一,形成一对一的数据形式。

此时,可以通过程序实现,也可以通过sql直接实现。此处采取SQL方式进行数据处理。

SQL方法:

利用GROUP_CONCAT ()方法,参数为需要合并的字段,合并的字段分隔符默认为逗号,可通过参数separator指定。此方法一般与 GROUP BY配合使用。

例子如下 :

1、 测试数据

Sql:

select a.goods_name as '商品名', a.supply_name '供应商' from tb_goods_info as a;

空

2、 没有GROUP BY情况下,进行多端数据的合并。此时一般无法达到要求。

Sql:

select GROUP_CONCAT(a.goods_name) as '商品名', a.supply_name '供应商' from tb_goods_info as a;

空

3、 与GROUP BY配合使用,使用默认分隔符。

Sql:

select GROUP_CONCAT(a.goods_name) as '商品名', a.supply_name '供应商' 
from tb_goods_info as a
GROUP BY a.supply_name;

无

4、 与GROUP BY配合使用,指定分隔符。

Sql:

select GROUP_CONCAT(a.goods_name SEPARATOR '--/--') as '商品名', a.supply_name '供应商' 
from tb_goods_info as a 
GROUP BY a.supply_name;

无

转载于:https://my.oschina.net/pding/blog/837654

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值