假设我在SQL表中有10个对象。每个都有标题和评级。说评级如下:
现在我需要显示前5名(有限制),评分为5星。然而,有7个评级为5星,当我按评级排序时,我总是得到相同的5个对象。
我需要按等级排序,限制为5,但是如果有超过5个具有相同评级的对象(可能是5个开始,可能是4个星等等),则需要随机。
此代码也适用于其他场景。例如,我可能有2个5星的物体,4个4星的物体。在4星中的4星之间,它也必须随机化以显示其中的3星。
谢谢!
答案 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