mysql where in 条件中参数个数问题

mysql 中经常在where 条件中使用到 in 语句

查询
SELECT * FROM table1 WHERE table1.id IN (1, 2, 3, 4, 5, …, 999999)

删除
DELETE FROM `table1` WHERE `id` in (835,836,837,…,999806)

子查询
SELECT * FROM table1
WHERE table1.id IN
    (
   SELECT id from table2
    )

in中的参数数量是否有限制呢?

mysql 中in中可以设置任意数量的值,具体的数量只关系到max_allowed_packet参数的限制

参考资料:

http://stackoverflow.com/questions/12666502/mysql-in-clause-max-number-of-arguments
http://stackoverflow.com/questions/1532366/mysql-number-of-items-within-in-clause
http://explainextended.com/2009/08/18/passing-parameters-in-mysql-in-list-vs-temporary-table/