2012-04-04 2 views
0

В моей базе данных MySQL все записи имеют рейтинг (целое число). Теперь я хочу иметь SQL-запрос, который поставляет 10 элементов случайным образом. И, как вы, наверное, догадались, шанс элемента быть выбранным должен быть RatingOfThisElement/AllRatings. Как мне это сделать. (Я знаю, как это сделать в php, но я хотел бы иметь SQL-запрос из-за производительности).SQL Случайный запрос

ответ

0

Google поможет вам в этом: http://akinas.com/pages/en/blog/mysql_random_row/

+0

Это просто случайно. Но я хочу, чтобы у меня был рейтинг RatingOfThisElement/AllRatings, а не 1/NumElements, как в вашем примере. – user1200226

+0

Дело в том, что вам нужно знать, как генерировать случайность. Вам нужно разобраться, как применить случайность к вашей ситуации. – briantyler

0

Вы можете использовать ORDER BY RAND() LIMIT 10, например, как здесь MySQL: Alternatives to ORDER BY RAND() но есть вопросы с ORDER BY RAND в MySQL, если они используются в некоторых отношениях. Это может случаю огромные проблемы с производительностью, и вы можете быть лучше делать это в PHP - alternatives to ORDER BY RAND

+0

Это просто случайно. Но я хочу, чтобы у меня был рейтинг RatingOfThisElement/AllRatings, а не 1/NumElements, как в вашем примере. – user1200226

0

здесь решение

SELECT * FROM yourtablename ORDER BY RAND() LIMIT 0,10; 
+0

Если вы посмотрите на ссылку, которую я опубликовал, имеет худшую производительность, чем запрос php. – briantyler

+0

, но пользователь1200226 не помещал PHP;) –

Смежные вопросы