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;

猜你喜欢

转载自www.cnblogs.com/wqbin/p/11927469.html
今日推荐