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

本贴最后更新于 2651 天前,其中的信息可能已经时过境迁

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;

[1507ae78e47041029d5cbdb4611e1a98-1.jpg

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

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

688c34904f8a4211aa1a2ec04094c7b0-2.jpg

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;

0392724cae204fb98d0ccfd2340fcb3a-3.jpg

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;

d932c86b07a24278ba2a5ab206011015-4.jpg

GROUP BY + GROUP_CONCAT 实现数据合并。

  • Database
    2 引用 • 9 回帖
  • SQL
    124 引用 • 296 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...