2012-01-10 22 views
4

可能重复:
MySQL number of items within “in clause”
In mysql or postgres, is there a limit to the size of an IN (1,2,n) statement?MySQL:对“IN”子句的条目是否有限制?

我动态地构建一个 “IN” 名单,我想知道是否有在MySQL中的IN子句的大小有限制。

SELECT foo FROM bar WHERE bar_key IN ('prod1', 'prod2', 'prod50', ...'last prod') 

我想有一个SQL语句的总长度的限制,但在手册中我找不到它。

我知道另一种方法是构建一个临时表并加入它,但如果我必须执行很多INSERT语句,我不确定性能折中的存在位置。当然,如果我可以用一个快速的INSERT填充临时表,但在我的情况下这是不可能的。

所以我的第一个问题是什么是MySQL的限制,我会很感激,如果你可以指向我在手册中的相关网页。

回答

9

manual

值在IN列表的数目仅由max_allowed_packet值限制。

+0

感谢 - 很高兴知道 – David 2012-01-10 19:00:17

+0

我发现有趣的是,当手册明确指出存在限制时,两个链接重复问题的答案都表明没有限制。 – xbrady 2012-01-10 19:02:06

+0

@xbrady:同意,我也发布了我对其他问题的回答。 – RedFilter 2012-01-10 19:02:38