我们看到一些文章,问题描述:mysql语句中in的个数到底有没有限制,答案是有的,限制个数为1000。
而且看到网友发的截图超过1000确实报错了,我亲测试了下发现,并没有报错。
结论:
Oracle中,in语句中可放的最大参数个数是1000个。之前遇到超过1000的情况,可用如下语句,但如此多参数项目会低,可考虑用别的方式优化。
select * from Table where id in(xxx,xxx...) or id in(yyy,yyy,...)
mysql中,in语句中参数个数是**不限制**的。不过对**整段**sql语句的**长度有了限制**(max_allowed_packet)。默认是4M!
参考:
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_allowed_packet