问题
今天处理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;