[MySQL] туплю....
Что неужто никто незнает?
SELECT * FROM Tabliza WHERE (RAND > 0.3)
Если я правильно помню, этот запрос выдаст примерно 70% рядов таблицы.
Если я правильно помню, этот запрос выдаст примерно 70% рядов таблицы.
по логике вецей, он с 70% вероятностью выдаст ответ 

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

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

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

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

гламурненько....
Не, я конечно понимаю что эта круто 
Но я хочу вынуть одно случайное значение. Как?

Но я хочу вынуть одно случайное значение. Как?
SELECT * FROM table ORDER BY RAND LIMIT 10;
Почему LIMIT 10?
Он же одно значение хочет?
Он же одно значение хочет?Как вынуть случайный ряд из нескольких?
ряд имел ввиду "один ряд из таблицы"
Думаю вместо 10 поставить 1 не составит проблем.
Вопрос решен, или тебя такое решение не устраивает?
Вопрос решен, или тебя такое решение не устраивает?
Не, проблем не составит
Спасибо!
Спасибо!SELECT * FROM table ORDER BY RAND LIMIT 10;На самом деле, если таблица большая, то очень уж долго это работает, по сравнению с простотой задачи
Но ничего другого я тоже не знаю 
А нельзя сделать
n = RAND*общее количество
WHERE (ID = n)
Извините, что не составил конкретного запроса: с сиквелом несколько лет не общался, а справочника под рукой нет.
n = RAND*общее количество
WHERE (ID = n)
Извините, что не составил конкретного запроса: с сиквелом несколько лет не общался, а справочника под рукой нет.
Ну не в каждой же таблице есть такой вот замечательный ID, который изменяется от 1 до общего количества
В Oracle-е вроде есть rownum, а вот в MySQL-е нету...
В Oracle-е вроде есть rownum, а вот в MySQL-е нету...я понимаю, но на практике ведь есть какой-то ИД? Правда, он не всегда числовой и не всегда диапазон сплошной
> Ну не в каждой же таблице есть такой вот замечательный ID, который изменяется от 1 до общего количества.
Зато везде можно сделать этот ID - в temporary table. И уже по ней прогнать запрос.
Зато везде можно сделать этот ID - в temporary table. И уже по ней прогнать запрос.
Оставить комментарий
Ivan826
Как вынуть случайный ряд из нескольких?