admin管理员组

文章数量:1529447

我在工作中有个定时任务查询订单什么什么的,然后我用的group_contact将订单号进行拼接,发现拼出来的字符串总是到最后一条数据不完整,我可能就猜到了可能这个订单太多了被截取了,果然把结果取出来,发现只有长1024,一百度,原来是group_contact默认长度为1024,如果非要全部显示的话,就需要去修改MySQL的配置文件(Windows下为my.ini -----  Linux下myf):

#需要设置的长度

group_concat_max_len = 18446744073709551615

如果问我为什么这个值,请看https://www.jb51/article/136480.htm

重启mysql服务

使用sql:show variables like 'group_concat_max_len';

检查一下设置值是否生效

第二种:(如果是生产环境,不能重启,可以通过sql命令临时修改,mysql服务再次重启后失效,执行命令:)

可以使用sql语句设置:

SET GLOBAL group_concat_max_len=5120;

SET SESSION group_concat_max_len=5120;

但是我想的是还是算了,我一次性少查一点吧,就用limit限制一下,结果emmmm。。。不生效>.<

咋肥事.....

又百度...

找到了overflow(对于程序员,这是个好东西呀,基本有问题找他都能解决,最大困难全英文,没事,幸好我英语一般般)

答案也就是在group_contact外层再加一个函数进行截取substring_index

substring_index(group_concat(s.title SEPARATOR ','), ',', 3) as skills

本文标签: 有个Contactmysqlgroupcontactgroupmysql