Показать сообщение отдельно
Старый 13.03.2008, 03:22     # 6
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
В MySQL количество в IN ограничено значением max_allowed_packet
http://dev.mysql.com/doc/refman/5.0/...ml#function_in

Но если уж пошла об этом речь, о слишком большом перечислении, ведь во временную таблицу данные тоже вставить надо, верно? Значит их количество ограничено длиной всего запроса, видимо ее хватает (да еще и лишний запрос, то есть медленно). Та почему бы в таком случае и выборку не сформировать просто как:
IN(...) or IN(...) or IN(...) ?

Более того, если же данные не умещаются в один запрос вставки, и вставляются во временну таблицу за несколько приемов и не разумно просто увеличить максимальное их количество, то ведь наверное можно сделать так (не проверял):
SELECT .... WHERE ID IN (...many, many values...)
UNION ALL
SELECT .... WHERE ID IN (...other part of many, many values...)
UNION ALL
SELECT .... WHERE ID IN (...other part of many, many values...)

разве нет?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума