【问题标题】:SQL Order, Limit and RandomSQL 顺序、限制和随机
【发布时间】:2014-10-12 17:15:45
【问题描述】:

假设我在一个 SQL 表中有 10 个对象。每个都有一个标题和一个评级。说评分如下:

现在我需要显示评分为 5 星的前 5 名(有限制)。但是有 7 个评分为 5 星,当我按评分排序时,我总是得到相同的 5 个对象。

我需要按等级排序,限制为 5,但如果有超过 5 个具有相同等级的对象(可能是 5 开始,可能是 4 星等),请随机化

此代码也应该在其他情况下工作。例如,我可能有 2 个 5 星的对象,4 个 4 星的对象。在 4 颗星中的 4 颗星之间,也必须随机显示其中的 3 颗。

谢谢!

【问题讨论】:

    标签: sql random limit


    【解决方案1】:

    尝试以随机顺序创建关系。

    像这样:

    SELECT * FROM table
    ORDER BY RAND()
    

    然后使用此关系应用您的查询(嵌套 SELECT)

    SELECT tab2.title FROM
      (SELECT * FROM table
      ORDER BY RAND())
    AS tab2
    ORDER BY rating
    

    我没有测试过,但它应该可以在mysql上运行

    【讨论】:

      猜你喜欢
      • 2016-10-03
      • 2013-01-07
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 2023-04-08
      • 2012-03-15
      • 1970-01-01
      相关资源
      最近更新 更多