Warning: (1260, 'Row xxx was cut by GROUP_CONCAT()')
MySql数据库查询时,使用group_concat报错“Row XXX was cut by GROUP_CONCAT()”,查了下是因为group_concat有个最大长度的限制,超过最大长度就会被截断掉,
我们检查一下mysql的全局环境变量:
mysql> SELECT @@global.group_concat_max_len; +-------------------------------+ | @@global.group_concat_max_len | +-------------------------------+ | 1024 | +-------------------------------+
检查一下是将生产环境的查询字段的的最大长度:
mysql> select max(length(extra)) from credit.apply; +--------------------+ | max(length(extra)) | +--------------------+ | 9599 | +--------------------+
再检查一下最大聚合次数
mysql> select max(c1) from (select custid,count(1) as c1 from credit.apply group by custid )t; +---------+ | max(c1) | +---------+ | 58 | +---------+
所以估计最大可能出现的长度为
9599 *58+67=556809
可以改变group_concat_max_len变量解决该问题:
SET group_concat_max_len=556809;
大多数人都以为是才智成就了科学家,他们错了,是品格。---爱因斯坦