分类: MySQL
MySQL5.7.x中group concat函数数据被截断问题解决

MySQL5.6中没这个问题,5.7中存在group concat函数数据被截断的问题,查询默认初始设置

mysql> show variables like 'group_concat_max_len';
+----------------------+-------+
| Variable_name  | Value |
+----------------------+-------+
| group_concat_max_len | 1024 |
+----------------------+-------+
1 row in set (0.00 sec)

能查询出来,但是查询结果异常,
MySQL官方手册 对它的定义是 The maximum permitted result length in bytes for the GROUP_CONCAT() function. ,也就是它限制了 GROUP_CONCAT 数据的长度。
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html

The maximum value for group_concat_max_len for 64-bit is  18446744073709551615
The maximum value for group_concat_max_len for 32-bit is  4294967295

解决方法:
1、修改MySQL配置文件my.cnf,在[mysqld]节点中添加

group_concat_max_len = 18446744073709551615

2、更改全局配置

SET GLOBAL group_concat_max_len=18446744073709551615;
SET SESSION group_concat_max_len=18446744073709551615;

使配置在当前会话中也立即生效,其它已经登录的会话终端需要重启生效,查询查询结果正常。


相关博文:

发表新评论