Panchous
Павел
Помогите с запросом
Есть баннеры (id, image, order)
order - порядок отображения (1,2...) или NULL
необходимо вывести K неповторяющихся баннеров, отсортированных по порядку возрастания:
Если баннеров с заданным порядком N<K шт.,
то вывести эти N баннеров + (K-N) рандомных, но неповторяющихся...
Хочется сделать это меньшим числом запросов к базе.
Красиво и оптимально.
Или не париться и решать задачу пошагово:
- выбираем баннеры с порядком
- считаем их кол-во и запоминаем id
- выбираем недостающие (distinct where id not in (....) limit ...)
PS:
MySQL 4.1
Есть баннеры (id, image, order)
order - порядок отображения (1,2...) или NULL
необходимо вывести K неповторяющихся баннеров, отсортированных по порядку возрастания:
Если баннеров с заданным порядком N<K шт.,
то вывести эти N баннеров + (K-N) рандомных, но неповторяющихся...
Хочется сделать это меньшим числом запросов к базе.
Красиво и оптимально.
Или не париться и решать задачу пошагово:
- выбираем баннеры с порядком
- считаем их кол-во и запоминаем id
- выбираем недостающие (distinct where id not in (....) limit ...)
PS:
MySQL 4.1