嘿,我必须在带有大量ID的MySQL语句中使用IN条件。
例
SELECT * FROM users WHERE id IN (1,2,3,4...100000)
如果IN语句可以包含项,是否有限制?
Answers:
IN
列表中的值数仅受max_allowed_packet值限制。
where id IN (14000 ids)
,它将一直工作到更新查询小于64MB(这是默认值),对吗?
IN
关键字没有任何内置限制,但是可能还有其他限制,例如max_allowed_packet
可能间接限制值的数量。如果将此值设置为1024(字节),则只能有效地使用有限数量的值。
据我所知,在mysql中,IN
语句中的项目没有限制。
在oracle中,该IN
语句中最多可以包含1000个项目。
但是中的更多项目IN
,除非对该索引建立索引,否则查询性能将降低。