Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом / 6 сообщений из 6, страница 1 из 1
18.11.2005, 15:21:51
    #33387160
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
...
Рейтинг: 0 / 0
18.11.2005, 22:24:06
    #33387968
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
К сожалению, "рандомность" вообще плохо сочетается со скоростью в SQL-запросах. И сочетания быстрого и красивого тут вряд ли стоит ожидать. Хочу предостеречь вас от использования ORDER BY RAND() в последнем пункте, это очень замедлит выборку.
...
Рейтинг: 0 / 0
21.11.2005, 13:12:40
    #33389872
Panchous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
DocAlХочу предостеречь вас от использования ORDER BY RAND() в последнем пункте, это очень замедлит выборку.А по-другому можно выбрать случайную запись?
...
Рейтинг: 0 / 0
21.11.2005, 14:18:05
    #33390111
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Одну -- запросто: SELECT COUNT, и генерите случайное число в пределах от 0 до результат - 1, SELECT ... LIMIT то_самое_случайное_число.
...
Рейтинг: 0 / 0
21.11.2005, 14:52:33
    #33390231
Panchous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
а заданное кол-во случайных?
...
Рейтинг: 0 / 0
22.11.2005, 10:53:03
    #33391697
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
SELECT COUNT, и генерите несколько случайных число в пределах от 0 до результат - 1, SELECT ... WHERE id IN (те_самые_случайные_числа).
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]