MySQL中group_concat长度限制的问题

问题

  • 查看SQL日志时,使用了group_concat函数的列数据被截断。

原因

  • 在mysql中的group_concat函数默认支持的最大字符数为1024。
  • 当你使用group_concat函数时,超出第1024字符的字符会全部丢失。
  • 获得group_concat的最大长度
SELECT @@global.group_concat_max_len;

或者

show variables like "group_concat_max_len";

解决

1.【临时修改】使用sql设置group_concat的最大长度

SET GLOBAL group_concat_max_len=409600; 
SET SESSION group_concat_max_len=409600; 

但是这种方式在重启mysql后就无效。

2.【终极修改】在MySQL配置文件中my.conf或my.ini中添加:

#[mysqld]
group_concat_max_len=409600

然后重启mysql服务

  • 阿里云的数据库,可以直接修改数据库函数group_concat_max_len
评论