conditional statements - MySQL IN condition limit - Stack Overflow

前置き

IN句の引数(1,2,3…の箇所をさす)で渡せる上限が気になった。

select * from table where id in (1, 2, 3...9999)

結論

IN句自体の渡せる引数に制限はない。が、max_allowed_packetによって制限される。

show variables like 'max_allowed_packet'で確認できる。単位がbyte。私の環境では16.7MB(16777216bytes)。

IN句以外で0.7MBを利用するとしたら、160万(16MB)文字なので、中々に制限を超えることはなさそう。