Замена rand() в sql запросе

Print RSS
466

А
Author
Чатланин
0
встала проблема с рандомным выбором из базы, очень грузит сервер, точную нагрузку на страницы не замерял, но примерно 2-3 секунды, без ранда - доли секунды, в чем проблема?! возможно ли чем то заменить?

ВЕЛИКИЙ и УЖАСНЫЙ!
0
хз... считать кол-во записей и просто рэндомить уже какую-нибудь переменную (числовую). А потом по этому числу выбирать запись.

Оранжевые штаны
0
smile покажи пожалуйста свой код неполный,поправлю что надо.
А
Author
Чатланин
0
3. ZipeR, код полностью исправен, его не нужно поправлять, это обычный sql запрос. здесь скорей всего нужна альтернатива функции rand.
(спасибо за желание помочь)

Добавлено через 03:56 сек.
2. SNELS, т.е сначала по критериям отбирать ид(допустим) записей, записывать в массив, и рандомно выбирать одно из ид, и делать повторный запрос?! если другого варианта не будет, придется наверно пользоваться этим

Оранжевые штаны
0
4. MerZaveC, замена mt_rand()
I

Пришелец
0
ORDER BY RAND() LIMIT 1;

Землянин
0
Я конечно может сейчас чушь напишу, но:
Итак, выводим с конца одну строку из таблицы путем DESC BY id (если не ошибаюсь).
Примерно так:
$num = mysql_query("SELECT id FROM table DESC BY id LIMIT 1");
Теперь у нас есть переменная, содержащая количество строк в таблице.
Теперь создаем еще одну переменную.
$rand = rand (1, $num);

Ну а теперь выполняем запрос к базе, который тебе нужен, добавив в "WHERE" условие id = $rand
Хз, может быть чушь написал и это тупой метод и вообще может автор этим и пользовался, но я просто написал, как думаю.
I

Пришелец
0
7. eXtaZy, очень глупый метод.

У тебя есть рандом от 1 до 20
в базе нету ида 15 например, скрипт не работает

Землянин
0
8. iNeeXT, sad как нету? Почему нету?
I

Пришелец
0
9. eXtaZy, если не будет.
Stickers / Tags / Rules / Top topics / Top Posts / Search