IN句に次のようなクエリの結果を取得させることもできます。
SELECT * FROM table1
WHERE table1.id IN
(
SELECT id from table2
)
そうすれば、可能なすべての値を含むテキスト文字列を生成する必要はありません。
mysqlでは、「max_allowed_packet」の値によってのみ制約される、必要な数の値をIN句に入れることができるはずです。
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