
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
18.11.2005, 15:21:51
|
|||
|---|---|---|---|
Помогите с запросом |
|||
|
#18+
Есть баннеры (id, image, order) order - порядок отображения (1,2...) или NULL необходимо вывести K неповторяющихся баннеров, отсортированных по порядку возрастания: Если баннеров с заданным порядком N<K шт., то вывести эти N баннеров + (K-N) рандомных, но неповторяющихся... Хочется сделать это меньшим числом запросов к базе. Красиво и оптимально. Или не париться и решать задачу пошагово: - выбираем баннеры с порядком - считаем их кол-во и запоминаем id - выбираем недостающие (distinct where id not in (....) limit ...) PS: MySQL 4.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.11.2005, 22:24:06
|
|||
|---|---|---|---|
Помогите с запросом |
|||
|
#18+
К сожалению, "рандомность" вообще плохо сочетается со скоростью в SQL-запросах. И сочетания быстрого и красивого тут вряд ли стоит ожидать. Хочу предостеречь вас от использования ORDER BY RAND() в последнем пункте, это очень замедлит выборку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.11.2005, 13:12:40
|
|||
|---|---|---|---|
Помогите с запросом |
|||
|
#18+
DocAlХочу предостеречь вас от использования ORDER BY RAND() в последнем пункте, это очень замедлит выборку.А по-другому можно выбрать случайную запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.11.2005, 14:18:05
|
|||
|---|---|---|---|
Помогите с запросом |
|||
|
#18+
Одну -- запросто: SELECT COUNT, и генерите случайное число в пределах от 0 до результат - 1, SELECT ... LIMIT то_самое_случайное_число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.11.2005, 14:52:33
|
|||
|---|---|---|---|
Помогите с запросом |
|||
|
#18+
а заданное кол-во случайных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2005, 10:53:03
|
|||
|---|---|---|---|
Помогите с запросом |
|||
|
#18+
SELECT COUNT, и генерите несколько случайных число в пределах от 0 до результат - 1, SELECT ... WHERE id IN (те_самые_случайные_числа). ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1853422]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 455ms |

| 0 / 0 |
