坑MySQL之group_concat_max_len
SQL查询中,会碰到将group by之后的数据拼接成字符串的场景。这时就该GROUP_CONCAT函数出马了,不得不说,好⽤是真好⽤,但是坑也是真坑。
因为默认GROUP_CONCAT函数返回的结果⼤⼩被MySQL默认限制为1024(字节)的长度。
mysql group by order by查看⽅式:
show variables like "group_concat_max_len";
这时就需要修改 group_concat_max_len 参数到需要的⼤⼩,⽐如102400,扩⼤⼀百倍。修改的⽅式有两种:
⽅法⼀:在MySQL的配置⽂件中加⼊如下配置(推荐):
group_concat_max_len =102400
⽅法⼆:更简单的操作⽅法,执⾏SQL语句:
SET GLOBAL group_concat_max_len =102400;
SET SESSION group_concat_max_len =102400;
ps:该⽅法缺点是重启服务后设置失效。只适合没有权限操作数据库服务器,但是⼜必修使⽤GROUP_CONCAT返回超过1024长度的情况
-----------------------------------------------------------------------我是结束分割线,但是如果你实在⽆聊,也可以继续往下看--------------------------------------------------------------------------------------------------------------------------
另外,设置“group_concat_max_len = -1”则为最⼤值,group_concat_max_len 的最⼤值为4294967295 (2^32 - 1)字节,⼀般也⽤不到。
⾄于MySQL为什么限制group_concat_max_len 的⼤⼩,不得⽽知,希望知道⼤神不吝赐教

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。