我有一个评级系统,它采用 1-5 的评级,然后增加投票数并添加到评级总数中。这对于我的前 5 名排行榜来说是有问题的,该排行榜目前通过 PHP Web 服务从 MySQL 数据库使用以下查询提供 Xml:
FROM ratings ORDER BY totalRating DESC LIMIT 5
现在显然这行不通。
有没有办法将totalRating除以noRating,然后返回order by?
我试图将其保留在数据库级别。希望这是可能的。
编辑:
假设我的表评分有两条记录:
Name | cRating | tRating //current number of ratings and total
Tv1 | 2 | 10
Tv2 | 3 | 9
我需要进行 tRating/cRating,然后将它们排序到前 5 个节目中
期望的结果是返回平均评分最高的 5 个结果(抱歉,我手机上的格式很糟糕)
最佳答案
您可以在order by
中使用算术表达式。所以这可能会达到你想要的效果:
order by tRating / nullif(cRating, 0) desc
关于php - 分两行后选择前5名MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36212816/