zoukankan      html  css  js  c++  java
  • 关于Mysql中GROUP_CONCAT函数返回值长度的坑

    1.GROUP_CONCAT函数: 

      功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

      语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

      说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

    2.坑:

      这个函数的返回值的长度默认限制为1024,所以如果期望得到结果的长度大于1024,就会被截断。

      最近项目中碰到了这个坑,终于在排除了一系列原因之后,mysql文档中找到了这个:

      https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html

    SET GLOBAL group_concat_max_len=102400;
    

      

    看到这里你可以右上角离开这里了。

    问题解决。

    然而并没有!

    这里还一个坑!

    这种方式设置了之后,不重启mysql是没问题的,但是mysql一旦重启就失效了!

    我们有Plan B :

    修改配置文件:my.ini

    在[mysqld]下新增配置:group_concat_max_len = 102400,然后重启mysql使之生效。

    另外可以将配置文件给设置为group_concat_max_len=-1  意思是不设置最大字节数(即设置为最大字节数)

  • 相关阅读:
    UVa 1331 最大面积最小的三角剖分
    UVa 1626 括号序列(矩阵连乘)
    POJ 3295 Tautology(构造法)
    POJ 2586 Y2K Accounting Bug(贪心)
    POJ 2109 Power of Cryptography
    abcd
    好数
    Gift
    密码游戏
    约瑟夫游戏
  • 原文地址:https://www.cnblogs.com/longlongogo/p/10815723.html
Copyright © 2011-2022 走看看