mysql中对于 GROUP_CONCAT 函数的长度限制处理
Posted 网事杂谈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中对于 GROUP_CONCAT 函数的长度限制处理相关的知识,希望对你有一定的参考价值。
今天才知,原来 GROUP_CONCAT 函数返回的长度默认是有限制的:
mysql> SHOW VARIABLES LIKE "group_concat_max_len";
可见,默认是最长不超过 1024。
修改mysql的配置参数增加限制:
vi /etc/my.cnf
[mysqld]
group_concat_max_len = 1024000
注意,有些文章里说设置成 -1 也可以,意思是不限制长度,但经过实践,这样并不可以:
还是老老实实设置一个固定值比较妥当。
最后,重启mysql服务:
systemctl stop mysqld
systemctl start mysqld
版权声明: 本文为博主 网无忌 原创文章,欢迎转载,但请务必标注原文链接。
MySQL GROUP_CONCAT长度限制引发的一场灾难
GROUP_CONCAT函数是对查处的分组数据对于分组列相同的数据合并成一列用逗号隔开的函数。
但是该函数的长度有个默认限制,默认是1024个字符,超过就会截断,从而导致用count统计GROUP_CONCAT的数量与实际打印GROUP_CONCAT具体值得数量不一致。
在代码排查的过程中Mybatis从数据库拿出来的值始终小于1024个字符,最终解决方法如下:
修改MySQL的一直参数GLOBAL group_concat_max_len;
set GLOBAL group_concat_max_len = 102400; --默认是1024
以上是关于mysql中对于 GROUP_CONCAT 函数的长度限制处理的主要内容,如果未能解决你的问题,请参考以下文章