SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.01.2010 11:58:30

gnostic
Участник
Зарегистрирован: 01.06.2009
Сообщений: 3

Как сделать выборку N-го количества записей для каждого из условий в запросе

Доброго времени суток!

При создании главной страницы столкнулся со следующей проблемой. У меня существует одна единственная таблица, в которой находятся данные из разных разделов сайта, но построенных по одному принципу. Для каждой записи существует идендификатор принадлежности к тому или иному разделу (newsid).

Когда дело касалось выборки для каждого раздела по `newsid` проблем не было. Однако на главную страницу понадобилось вывести сразу несколько разделов, отсортированных и определенного количества. Т.е. скажем из раздела "Новости 1" нужно выбрать только последние 6 новостей, а из раздела "Новости 2" нужно извлечь 10 последних новостей.

И вот вопрос, возможно ли в одном запросе сделать выборку определенного количества записей для каждого условия?

Если это невозможно тогда что будет лучше, сделать 2 запроса к базе данных или сделать выборку средствами php перебирая результирующий массив, созданный так - for ($data=array(); $row=mysql_fetch_assoc($result); $data[]=$row);

Большое спасибо!

Неактивен

 

#2 26.01.2010 13:27:35

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Как сделать выборку N-го количества записей для каждого из условий в запросе

Как правило, Вы захотите еще и оформлением подчеркнуть отличие разных
видов новостей, поэтому несколько запросов проще. Но если данные однотипные,
можете и просто через UNION вытащить одним запросом

(SELECT * FROM news1 LIMIT 5) UNION (SELECT * FROM news2 LIMIT 10)

Неактивен

 

#3 26.01.2010 17:34:19

gnostic
Участник
Зарегистрирован: 01.06.2009
Сообщений: 3

Re: Как сделать выборку N-го количества записей для каждого из условий в запросе

Спасибо! Значит все же несколько запросов лучше будет! :-)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson