powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
6 сообщений из 6, страница 1 из 1
Помогите с запросом
    #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
Помогите с запросом
    #33387968
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению, "рандомность" вообще плохо сочетается со скоростью в SQL-запросах. И сочетания быстрого и красивого тут вряд ли стоит ожидать. Хочу предостеречь вас от использования ORDER BY RAND() в последнем пункте, это очень замедлит выборку.
...
Рейтинг: 0 / 0
Помогите с запросом
    #33389872
Panchous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DocAlХочу предостеречь вас от использования ORDER BY RAND() в последнем пункте, это очень замедлит выборку.А по-другому можно выбрать случайную запись?
...
Рейтинг: 0 / 0
Помогите с запросом
    #33390111
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одну -- запросто: SELECT COUNT, и генерите случайное число в пределах от 0 до результат - 1, SELECT ... LIMIT то_самое_случайное_число.
...
Рейтинг: 0 / 0
Помогите с запросом
    #33390231
Panchous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а заданное кол-во случайных?
...
Рейтинг: 0 / 0
Помогите с запросом
    #33391697
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT COUNT, и генерите несколько случайных число в пределах от 0 до результат - 1, SELECT ... WHERE id IN (те_самые_случайные_числа).
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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