Несмотря на то, что он старый, он все равно отображается в результатах поиска, поэтому стоит ответить.
В MySQL нет жестко заданного максимума для длины запроса. Это включает в себя все части запроса, такие как предложение WHERE.
Однако, существует значение max_allowed_packet, которое определяет самый большой запрос, который вы можете выполнить в процессе сервера MySQL. Это связано не с количеством элементов в запросе, а с общей длиной запроса. Так
SELECT * FROM mytable WHERE mycol IN (1,2,3);
менее вероятно достигнет лимита, чем
SELECT * FROM mytable WHERE mycal IN ('This string','That string','Tother string');
Значение max_allowed_packet настраивается от сервера к серверу. Но почти наверняка, если вы достигаете предела, потому что вы пишете операторы SQL эпической длины (вместо того, чтобы иметь дело с двоичными данными, которые являются законной причиной для их попадания), тогда вам нужно переосмыслить свой SQL.