También puede hacer que la cláusula IN tome los resultados de una consulta, como:
SELECT * FROM table1
WHERE table1.id IN
(
SELECT id from table2
)
De esa forma, no necesita generar una cadena de texto con todos los valores posibles.
En mysql, debería poder poner tantos valores en la cláusula IN como desee, solo limitado por el valor de "max_allowed_packet".
http://dev.mysql.com/doc /refman/5.0/en/comparison-operators.html#function_in http://dev.mysql.com /doc/refman/5.0/en/variables-del-sistema-del-servidor.html#sysvar_max_allowed_packet