【问题标题】:How can I SELECT 16 records at random from a range of rows in MySQL?如何从 MySQL 中的一系列行中随机选择 16 条记录?
【发布时间】:2009-10-21 15:12:13
【问题描述】:

我想显示我数据库中 16 个最受欢迎的项目的列表,但我希望该列表每次都不同。因此,从前 50 个下载项目中,随机选择 16 个并将其返回结果中。只需一个查询就可以做到这一点吗?

【问题讨论】:

    标签: sql mysql random


    【解决方案1】:
    SELECT * 
        FROM (SELECT FROM table ORDER BY download_no DESC LIMIT 50) AS new_table
        ORDER BY RAND() 
        LIMIT 16
    

    【讨论】:

      【解决方案2】:

      这是一个讨论这个问题的网页:http://akinas.com/pages/en/blog/mysql_random_row/

      HTH

      【讨论】:

      • 谢谢,非常有用,但我决定接受 Residuum 的回答。
      【解决方案3】:

      通过RAND()订购

      【讨论】:

      • 为此得到了负 2 ;-( 到底为什么?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 2017-06-28
      • 1970-01-01
      • 2016-05-06
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多