2012-04-04 89 views
0

在我的MySQL数据库中,所有条目都有一个评分(整数)。现在我想要一个随机提供10个元素的SQL查询。正如你猜测的那样,一个元素的机会应该是RatingOfThisElement/AllRatings。我怎样才能做到这一点。 (我知道如何做到这一点,但我想有一个SQL查询,因为性能)。SQL随机查询

回答

0

谷歌应该可以帮助您与此:http://akinas.com/pages/en/blog/mysql_random_row/

+0

这只是随机。但我希望有机会成为RatingOfThisElement/AllRatings,而不是像你的例子中的1/NumElements。 – user1200226 2012-04-04 08:46:45

+0

关键是你需要知道如何产生随机性。你需要弄清楚如何对你的情况应用随机性。 – briantyler 2012-04-04 10:06:01

0

您可以使用ORDER BY RAND()的限制,如这里MySQL: Alternatives to ORDER BY RAND() 10,但如果以某种方式使用ORDER有问题,兰德公司在MySQL。它可以区分巨大的性能问题,你可能会更好用PHP做 - alternatives to ORDER BY RAND

+0

这只是随机的。但我希望有机会成为RatingOfThisElement/AllRatings,而不是像你的例子中的1/NumElements。 – user1200226 2012-04-04 08:47:12

0

这里是解决

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

如果你看看我发布的链接比php查询性能差。 – briantyler 2012-04-04 08:29:51

+0

但user1200226没有标记PHP;) – 2012-04-04 11:31:43