1.场景描述
在做功能中, 需要根据条件过滤, 使用group by分组, 分组后的主键id参数使用group concat()函数, 对字段进行拼接
例子:
select group_concat(id) from t_one group by address,start_time;
2.问题描述:
操作数据量小的时候没问题,当操作数据条数多的时候,会出现结果不一致问题
3.原因:
mysql中group_concat函数处理字符串长度的限制是1024,如果拼接的字符串超过1024,就会在数据库里面被截取,所以不会显示所有拼接数据.
4.解决办法:
1.执行sql修改
SET GLOBAL group_concat_max_len=102400;(长度可修改)
SET SESSION group_concat_max_len=102400;(长度可修改)
缺点:重启服务后设置失效
2.修改配置文件my.ini
group_concat_max_len=-1并重启mysql
注:-1为最大值,也可修改为需要的值