mysql查询group_concat()数据不全问题解决

查询该语句发现数据居然缺失如下:

140020##2014年记账式附息(二十期)国债##14附息国债20,G140020##2014年记账式附息(二十期)国债##14附息国债20, 省略部分数据...... ,101424##2014年记账式附息(二十四期)国债##国债1424,140024##

查来查去终于发现了一个巨坑,那就是group_concat()有长度限制102400, 可能数据太长导致被截断.

解决方法一:

windows下在my.ini加上group_concat_max_len = 102400 //自己设置的值

linux在mysql.cof中加上group_concat_max_len =102400 //自己设置的值

linux或者在my.cnf中加入如下
[mysqld]
group_concat_max_len = 4294967295(也可以为-1最大值)

重启mysql服务,完美解决,

注,mysql安装目录下没有my.ini,创建一个并加入:

group_concat_max_len = 4294967295

解决方法二:(不推荐,因为数据库重启后长度会重新变回1024)

登录后复制
//查看当前数据库的groupconcat长度
SHOW VARIABLES LIKE 'group_concat_max_len';

//执行以下语句修改成自己想要的长度
SET GLOBAL group_concat_max_len = 102400;
SET SESSION group_concat_max_len = 102400;


©著作权归作者所有:来自51CTO博客作者ch3nnn的原创作品,请联系作者获取转载授权,否则将追究法律责任
mysql查询group_concat()数据不全导致数据被截断问题
https://blog.51cto.com/ch3nnn/5483293

你可能感兴趣的:(mysql查询group_concat()数据不全问题解决)