[MySQL] туплю....
Что неужто никто незнает?
Если я правильно помню, этот запрос выдаст примерно 70% рядов таблицы.

Почему? Разве WHERE будет вычисляться только один раз?
просто если она выдаст по условию true или false, с соответственными вероятностями... вот и смотри, то получится

Хорошо, а если RAND заменить на RAND(ID)?
да конечно не один, что ты его слушаешь!
в смысле не один?

WHERE вычисляется не один раз, а для каждого элемента

про индексы что-нибудь слышал?
Что гадать-то, взять и проверить. В MySQL запрос select name from wakka_users where rand > 0.5; выдает действительно около половины записей. Rand вычисляется для каждой записи.

гламурненько....

Но я хочу вынуть одно случайное значение. Как?
SELECT * FROM table ORDER BY RAND LIMIT 10;

Как вынуть случайный ряд из нескольких?
ряд имел ввиду "один ряд из таблицы"
Вопрос решен, или тебя такое решение не устраивает?

SELECT * FROM table ORDER BY RAND LIMIT 10;На самом деле, если таблица большая, то очень уж долго это работает, по сравнению с простотой задачи


n = RAND*общее количество
WHERE (ID = n)
Извините, что не составил конкретного запроса: с сиквелом несколько лет не общался, а справочника под рукой нет.

я понимаю, но на практике ведь есть какой-то ИД? Правда, он не всегда числовой и не всегда диапазон сплошной
Зато везде можно сделать этот ID - в temporary table. И уже по ней прогнать запрос.
Оставить комментарий
Ivan826
Как вынуть случайный ряд из нескольких?