MySQL的GROUP_CONCAT函数报错
调整MySQL的group_concat_max_len参数。
一、报错情况
使用GROUP_CONCAT函数报错,查找原因发现是拼接的字符串过长导致无法返回结果。
通过查找资料是由于group_concat_max_len参数设置导致的,并根据结果显示,默认的可拼接串最大长度不超过1024个字节,期望能够扩大允许的拼接字符串最大长度。
show variables like "group_concat_max_len";
二、调整方式
总共有两种更改方式,一种是更改配置文件,优点是即使重启数据库也不会使设置失效,缺点是第一次更改需要重启数据库才能生效;另一种是执行命令来进行更改,优点是不需要重启数据库即时生效,缺点是重启数据库后设置失效。
- 更改配置文件
这里我以Linux服务器下的MySQL环境为例,一般配置文件所在位置为:/etc/my.cnf
使用vim进入到配置文件编辑模式,加上以下配置:
group_concat_max_len = 102400
重启数据库
systemctl restart mysqld
连接到数据库后,检查是否生效:
show variables like "group_concat_max_len";
- 命令行更改
连接到数据库后,执行以下命令:
# 从原先的1024字节(1kb)调整为1024(kb) SET GLOBAL group_concat_max_len = 1024000; SET SESSION group_concat_max_len = 1024000;
检查是否生效:
show variables like "group_concat_max_len";
参考资料:
[]