Запрос в % соотношении

  • Автор темы Spectrum
  • Дата начала

Spectrum

Guest
Запрос в % соотношении

Задача - выбрать из базы по категориям в столбик 100 ссылок.
Первые 24 выбираются по критерию приоритетности , скажем 12 категорий (а,б,с,в...) , а остальные 76 ссылок в random порядке.
вопрос :
1)Можно ли как то лимитировать в одном запросе количество ссылок на 1 категорию , а именно 24/12=2 то есть что бы случайным образом выбиралось 2 ссылки из категории и что бы они не шли друг за другом по категориям а перемешались между собой.

У меня пока варианты :
1.Делать отдельный запрос на каждую категорию и лимитировать её limit 2 (недостаток - ссылки идут по две друг за другом по категории , 12 отдельных запросов)
2.Отдельный запрос который генерирует остальные 76 ссылок.
(и тут вопрос - как исключить из этого запроса ссылки принадлежащей приоритетной категории )

Может кто то предложит решение попроще.
Спасибо.
 

Yurik

/dev/null
urls
===
id
idcat
url

cats
===
idcat
catname
priority

1. SELECT * FROM urls, cats WHERE urls.idcat=cats.idcat AND cats.priority>0 ORDER BY priority DESC LIMIT 12

2. SELECT * FROM urls, cats WHERE urls.idcat=cats.idcat AND cats.priority=0 ORDER BY RAND() LIMIT 76
 
Сверху