MySQL的GROUP_CONCAT函数报错

调整MySQL的group_concat_max_len参数。

一、报错情况

使用GROUP_CONCAT函数报错,查找原因发现是拼接的字符串过长导致无法返回结果。

通过查找资料是由于group_concat_max_len参数设置导致的,并根据结果显示,默认的可拼接串最大长度不超过1024个字节,期望能够扩大允许的拼接字符串最大长度。

show variables like "group_concat_max_len";

二、调整方式

总共有两种更改方式,一种是更改配置文件,优点是即使重启数据库也不会使设置失效,缺点是第一次更改需要重启数据库才能生效;另一种是执行命令来进行更改,优点是不需要重启数据库即时生效,缺点是重启数据库后设置失效。

  1. 更改配置文件

这里我以Linux服务器下的MySQL环境为例,一般配置文件所在位置为:/etc/my.cnf

使用vim进入到配置文件编辑模式,加上以下配置:

group_concat_max_len = 102400

重启数据库

systemctl restart mysqld

连接到数据库后,检查是否生效:

show variables like "group_concat_max_len";
  1. 命令行更改

连接到数据库后,执行以下命令:

# 从原先的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";

参考资料:

[]

经验分享 程序员 微信小程序 职场和发展