LIMIT для каждого вхождения в IN(...)

Йакуд

Новичок
Приветствую, появился такой вопрос, как мне применить фильтр LIMIT N для каждого вхождения в IN(...)? Существует примерно вот такой запрос:
PHP:
SELECT * FROM `table` WHERE `sid` IN ('1', '2', '3')
Так вот, мне нужно выбрать N элементов где sid==1, N элементов где sid==2 и т.д.
Если я напишу LIMIT вконце выражения, то работать явно будет не так. Выберется всего N элементов.
Заранее, спасибо за помощь!
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Перед тем, как выиграть время - напиши хоть как-нибудь ;)
 

Йакуд

Новичок
Перед тем, как выиграть время - напиши хоть как-нибудь ;)
"Хоть как-нибудь" уже есть и прекрасно работает, но сейчас идет стадия рефакторинга и оптимизации, хочется максимально возможно оптимизировать.
Если я правильно понимаю, то запросы с UNION будут побыстрее, чем несколько запросов. Выигрываем время на подключении к базе и т.п.
 

Dovg

Продвинутый новичок
Если я правильно понимаю, то запросы с UNION будут побыстрее, чем несколько запросов. Выигрываем время на подключении к базе и т.п.
Если я правильно понимаю, то нужно смотреть план выполнения конкретного запроса.

Время на подключение к базе вы точно не выигрываете, если не прибиваете предыдущее подключение.
 

Redjik

Джедай-мастер
~WR~
не вчитывался, но не проще было сделать GROUP BY ALL?
 

Фанат

oncle terrible
Команда форума
сейчас идет стадия рефакторинга и оптимизации
Этой стадии должна была предшествовать стадия профайлинга, чтобы оптимизация действительно была именно что "по максимуму", а не в форме безумных метаний по переписыванию случайно попавших под руку кусков кода, которые и так прекрасно работают (sic!)
 
Сверху