解决mysql的语句中group_concat长度限制问题

发布时间 2023-12-14 10:29:14作者: 长虫山小木屋

在mysql中,有个函数叫“group_concat”,平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了。其实MYSQL内部对这个是有设置的,默认不设置的长度是1024。查看默认配置

show variables like "group_concat_max_len"; 

模板返回是

Variable_name     Value     
group_concat_max_len     1024

 

如果是生产环境下,不能擅自重启MySQL服务,则可以通过语句设置group_concat的作用范围,如:

    SET GLOBAL group_concat_max_len=-1;
    SET SESSION group_concat_max_len=-1;

group_concat_max_len = -1  (-1为最大值或根据实际需求设置长度)或执行sql

SET SESSION group_concat_max_len = 10240000;


group_concat()指定分隔符

GROUP_CONCAT(pro_name,'~',stime,'~',otime,'~',pro_price SEPARATOR '')