Mysql 中的group_concat函数的使用及陷阱

Posted somTian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 中的group_concat函数的使用及陷阱相关的知识,希望对你有一定的参考价值。

group_concat函数

mysql 中的group_concat 是字符串连接函数,完整的语法如下:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

可以结合group by 实现分组信息,同时可以指定分隔符和排序规则

陷阱

GROUP_CONCAT有个最大长度的限制,超过最大长度就会被截断掉

可以通过下面的语句查看最大长度

SELECT @@global.group_concat_max_len;

1024这就是一般MySQL系统默认的最大长度,如果你的bid串起来大于这个就会出问题,好在有解决的办法:

  • 1.在MySQL配置文件中加上
group_concat_max_len = 204800 #你设定的最大长度
  • 2.可以简单一点,执行语句:
mysql> SET GLOBAL group_concat_max_len=204800;

第一种方式需要重启mysql,建议使用第二种!

以上是关于Mysql 中的group_concat函数的使用及陷阱的主要内容,如果未能解决你的问题,请参考以下文章

mysql—group_concat函数

mysql中的group_concat()函数的参数排序

关于如何在vertica上使用MySQL的group_concat()函数

MySQL中的group_concat函数

解决mysql中group_concat长度限制的方案

SQL 中的 STUFF 等效函数(MySQL 中的 GROUP_CONCAT / Oracle 中的 LISTAGG)