Mysql存储过程的递归调用及数据量过大group_concat()显示不全的问题

当使用MySQL的group_concat函数处理大量数据时,可能因结果过长而被截断。可以通过两种方式解决:一是临时设置全局或会话变量group_concat_max_len为更大值,但重启后会失效;二是永久修改my.ini配置文件,将group_concat_max_len设为需要的大小或-1以使用最大字节数。重启MySQL后设置生效。
摘要由CSDN通过智能技术生成

业务场景

使用mysql group_concat()函数,对查询的数据进行字符串连接操作。
由于查询的结果较多,连接后的结果很长导致不能完全显示。

第一种解决方案(不需要重启Mysql, 如果mysql重启后设置会失效,需重新设置)

执行SHOW VARIABLES LIKE 'group_concat_max_len'查看当前GROUP_CONCAT的最大长度,

在这里插入图片描述

执行:

SET GLOBAL group_concat_max_len = 102400;
SET SESSION group_concat_max_len = 102400;
此种方式在mysql重启后会读取配置文件重新设置,会导致设置失效,所以建议依旧要修改配置文件

第二种解决方案(需重启Mysql)

修改配置文件:my.ini
在[mysqld]下新增配置:group_concat_max_len = 102400

特殊需求
有时我们并不知需要多大的字节才能满足需求,此种情况可以考虑不设置最大字节(即采用最大字节数)即在配置文件设置group_concat_max_len=-1

设置后,重启MySQL

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值