group_concat的坑,默认长度问题。

问题

今天处理mysql数据统计问题。在数据很大的情况下,发现一个很奇怪的问题,group_concat查询出来的数据总是不全。绞尽脑汁的测试mysql语句就是不得解,万般无奈百度下。

原因

数据太大,group_concat超出了默认值1024,超过就会截断。

解决方法

1.查看当前 mysql group_concat_max_len
进入mysql状态,输入:show variables like 'group_concat_max_len';

mysql> show variables like 'group_concat_max_len';
+----------------------+------------+
| Variable_name | Value |
+----------------------+------------+
| group_concat_max_len | 4294967295 |
+----------------------+------------+
1 row in set

2.在MySQL配置文件中添加配置:group_concat_max_len = -1 (-1为最大值或根据实际需求设置长度),配置后需要重启MySQL服务
如果是生产环境下,不能擅自重启MySQL服务,则可以通过语句设置group_concat的作用范围,如:
SET SESSION group_concat_max_len=-1;

你可能感兴趣的:(group_concat的坑,默认长度问题。)