mysql concat 能否返回数字_关于Mysql中GROUP_CONCAT函数返回值长度的坑

1.GROUP_CONCAT函数:

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

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

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

2.坑:

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

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

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  意思是不设置最大字节数(即设置为最大字节数)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值