group_concat where in 长度的坑?

GROUP_CONCAT()函数可以将多条记录的同一字段的值,拼接成一条记录返回。但是默认情况下,这个拼接最大长度是有限制的,导致查询结果不完整。

我本来有345个id,结果查出来才有206个,后来查了百度才知道,group_concat是有长度限制的

查询group_concat的长度,默认为1024字节

show variables like 'group_concat_max_len';

接下来,怎么设置它的长度?两个办法

1、长久设置,有服务器权限,则group_concat_max_len = -1 ,大小为2^32  - 1,4294967295 字节,也就是4G。

2、临时设置,这个办法如果重启服务器后,就会失效。

 SET GLOBAL group_concat_max_len=-1;

 SET SESSION group_concat_max_len=-1;

有这个后,我想到wehe in 会不会也有长度限制呢?百度到mysql对where in没有限制,但它限制了mysql的长度默认是

 max_allowed_packet=1M

如果需要很长,则可以把这个值改为更大如
max_allowed_packet=32M

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值