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/