Ответ 1
Вы также можете иметь предложение IN взять результаты запроса, например:
SELECT * FROM table1
WHERE table1.id IN
(
SELECT id from table2
)
Таким образом, вам не нужно генерировать текстовую строку со всеми возможными значениями.
В mysql вы должны иметь возможность поместить столько значений в предложение IN, сколько хотите, только с ограничением на значение "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/server-system-variables.html#sysvar_max_allowed_packet