【问题标题】:SQL Random querySQL 随机查询
【发布时间】:2012-04-04 08:06:16
【问题描述】:

在我的 MySQL 数据库中,所有条目都有一个等级(一个整数)。现在我想要一个随机提供 10 个元素的 SQL 查询。正如您可能猜到的那样,一个元素被采用的机会应该是 RatingOfThisElement/AllRatings。我怎样才能做到这一点。 (我知道如何在 php 中执行此操作,但由于性能原因,我想进行 SQL 查询)。

【问题讨论】:

    标签: mysql sql random


    【解决方案1】:

    Google 应该可以帮助您:http://akinas.com/pages/en/blog/mysql_random_row/

    【讨论】:

    • 这只是随机的。但我希望有机会成为 RatingOfThisElement/AllRatings,而不是像您的示例中那样的 1/NumElements。
    • 关键是你需要知道如何产生随机性。您需要弄清楚如何将随机性应用于您的情况。
    【解决方案2】:

    您可以使用 ORDER BY RAND() LIMIT 10,例如此处MySQL: Alternatives to ORDER BY RAND(),但如果以某些方式使用,MySQL 中的 ORDER BY RAND 会出现问题。它可以解决巨大的性能问题,您最好在 PHP 中执行它 - alternatives to ORDER BY RAND

    【讨论】:

    • 这也是随机的。但我希望有机会成为 RatingOfThisElement/AllRatings,而不是像您的示例中那样的 1/NumElements。
    【解决方案3】:

    解决办法

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

    【讨论】:

    • 如果您查看我发布的链接,其性能比 php 查询更差。
    • 但 user1200226 没有标记 PHP ;)
    猜你喜欢
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    相关资源
    最近更新 更多