【发布时间】:2012-04-04 08:06:16
【问题描述】:
在我的 MySQL 数据库中,所有条目都有一个等级(一个整数)。现在我想要一个随机提供 10 个元素的 SQL 查询。正如您可能猜到的那样,一个元素被采用的机会应该是 RatingOfThisElement/AllRatings。我怎样才能做到这一点。 (我知道如何在 php 中执行此操作,但由于性能原因,我想进行 SQL 查询)。
【问题讨论】:
在我的 MySQL 数据库中,所有条目都有一个等级(一个整数)。现在我想要一个随机提供 10 个元素的 SQL 查询。正如您可能猜到的那样,一个元素被采用的机会应该是 RatingOfThisElement/AllRatings。我怎样才能做到这一点。 (我知道如何在 php 中执行此操作,但由于性能原因,我想进行 SQL 查询)。
【问题讨论】:
Google 应该可以帮助您:http://akinas.com/pages/en/blog/mysql_random_row/
【讨论】:
您可以使用 ORDER BY RAND() LIMIT 10,例如此处MySQL: Alternatives to ORDER BY RAND(),但如果以某些方式使用,MySQL 中的 ORDER BY RAND 会出现问题。它可以解决巨大的性能问题,您最好在 PHP 中执行它 - alternatives to ORDER BY RAND
【讨论】:
解决办法
SELECT * FROM yourtablename ORDER BY RAND() LIMIT 0,10;
【讨论】: