mysql深坑之--group_concat有长度限制!!!!默认1024 - 日理万妓 2022-03-29 10:58 201阅读 0赞 原文:[https://www.cnblogs.com/franson-2016/p/6911631.html][https_www.cnblogs.com_franson-2016_p_6911631.html] 在mysql中,有个函数叫“group\_concat”,平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了,其实MYSQL内部对这个是有设置的,默认不设置的长度是1024,如果我们需要更大,就需要手工去修改配置文件。(或者换用其他方式) 详细说明如下: 用了group\_concat后,select里如果使用了limit是不起作用的. 用group\_concat连接字段的时候是有长度限制的,并不是有多少连多少。但你可以设置一下。 使用group\_concat\_max\_len系统变量,你可以设置允许的最大长度。 程序中进行这项操作的语法如下,其中 val 是一个无符号整数: SET \[SESSION | GLOBAL\] group\_concat\_max\_len = val; 若已经设置了最大长度,则结果被截至这个最大长度。 在SQLyog中执行 SET GLOBAL group\_concat\_max\_len = 10 后,重新打开SQLyog,设置就会生效。 -------------------- GROUP\_CONCAT将某一字段的值按指定的字符进行累加,系统默认的分隔符是逗号,可以累加的字符长度为1024字节。可以对这些参数进行修改。 1.先举一个简单的例子 select group\_concat(f\_a) from t\_one group by f\_b; 按f\_b进行分组查询,将每组中的f\_a进行累加。 2.修改默认的分隔符 select group\_concat(f\_a separator ‘*’) from t\_one group by f\_b; separator 是一个关键字,后面跟着要进行分隔的字符 3.排序 select group\_concat(f\_a order by f\_a separator '*’) from t\_one group by f\_b; 4.修改默认字符大小 1).在MySQL配置文件中加上 group\_concat\_max\_len = 102400 \#你要的最大长度 2).可以简单一点,执行语句,可以设置作用范围 SET GLOBAL group\_concat\_max\_len=102400; SET SESSION group\_concat\_max\_len=102400; 5.和concat使用 [https_www.cnblogs.com_franson-2016_p_6911631.html]: https://www.cnblogs.com/franson-2016/p/6911631.html
还没有评论,来说两句吧...