SQL顺序,限制和随机

时间:2014-08-19 14:37:08

标签: sql random limit

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

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

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

此代码也适用于其他场景。例如,我可能有2个5星的物体,4个4星的物体。在4星中的4星之间,它也必须随机化以显示其中的3星。

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试使用随机顺序创建关系。

像这样:

SELECT * FROM table
ORDER BY RAND()

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

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

我没有测试它,但它应该适用于mysql