|
|
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#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, 15:21:51 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
К сожалению, "рандомность" вообще плохо сочетается со скоростью в SQL-запросах. И сочетания быстрого и красивого тут вряд ли стоит ожидать. Хочу предостеречь вас от использования ORDER BY RAND() в последнем пункте, это очень замедлит выборку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 22:24:06 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
DocAlХочу предостеречь вас от использования ORDER BY RAND() в последнем пункте, это очень замедлит выборку.А по-другому можно выбрать случайную запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 13:12:40 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Одну -- запросто: SELECT COUNT, и генерите случайное число в пределах от 0 до результат - 1, SELECT ... LIMIT то_самое_случайное_число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 14:18:05 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
а заданное кол-во случайных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 14:52:33 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
SELECT COUNT, и генерите несколько случайных число в пределах от 0 до результат - 1, SELECT ... WHERE id IN (те_самые_случайные_числа). ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 10:53:03 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=642&tid=1853422]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
80ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 385ms |

| 0 / 0 |
