MySQL 之GROUP_CONCAT 多行数据合并

作用

group_concat函数,连接字段,多个值显示为一行。
如下效果,图一中的多行值变换成图二的一行显示形式。
图一在这里插入图片描述

图二
图二

注意:使用 GROUP_CONCAT()函数必须对源数据进行分组,否则所有数据会被合并成一行

语法

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])

  • 排序效果

在这里插入图片描述

  • 分割效果 : SEPARATOR

以逗号最为默认的连接字符

在这里插入图片描述

  • 可以使用 DISTINCT 过滤重复的值
SELECT GROUP_CONCAT( DISTINCT a.REGION_ID ORDER BY a.REGION_ID DESC SEPARATOR ' ') 
FROM t_region a;

在这里插入图片描述

  • 最大值限制

GROUP_CONCAT() 是有最大长度限制的,默认值是 1024。

可以通过 group_concat_max_len 参数进行动态设置。参数范围可以是 Global 或 Session。

设置语法如下:

在这里插入图片描述
使用默认值的情况,当总长度达到 1024 后,后面的记录就被截断掉。

group_concat_max_len 设置为最大值:
值是无符号整型,最大值与版本位数有关:

在这里插入图片描述

SET SESSION group_concat_max_len=18446744073709551615;
SET SESSION group_concat_max_len=4294967295;

over~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值