2012-01-10 71 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