在mysql中,有个函数叫“GROUP_CONCAT”,平常使用可能发现不了问题,然而一旦数据量增大时,会发现内容被截取了!!!是的,你没看错,就是被截取了!!真的是非常令人蛋疼的问题呀,尤其是在类似聚合分组的业务,将数据反馈给客户端时,就更为严重了!多番查找折腾后发现,原来…
MYSQL内部对这个是有设置的,默认不设置的长度是1024,可以通过使用show variables like "group_concat_max_len命令来查看该变量值group_concat_max_len

想要指定GROUP_CONCAT的长度有两种方法:

  1. 修改变量 group_concat_max_len的值

    • 修改session变量,只对该连接客户有效

      1
      SET [SESSION] group_concat_max_len=102400;
    • 修改global变量,对所有连接都生效

      1
      SET GLOBAL group_concat_max_len=102400;
  2. 修改配置文件(全局生效)

在mysql启动的配置文件下,进行设置,各平台下配置文件存放的目录不同,配置文件的具体存放位置,不是本文要讨论的内容

以我的mac os系统为例,我已经将mysql的配置文件写在/etc目录下,只需要在mysqld节点下group_concat_max_len = [size] (size是你定义的大小,上限为4294967295)group_concat_len

曾经看到过一些文章的说法是将group_concat_max_len设置为-1,然后就可以达到上限4294967295,我在自己的机器下试了试,发现并不可以…我的系统是mac os 10.12 ,mysql的版本是5.7.19

本文参考自CSDN,原文地址

留言

2017-09-20
Contents

⬆︎TOP