php - 分两行后选择前5名MySQL

标签 php mysql

我有一个评级系统,它采用 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/

相关文章:

mysql - 如何更正和重写此查询?

Mysql 中等 int 与 int 性能

php - mysql_select 成功,返回 null

javascript - .js 文件修改不适用于 ocmod opencart

php - 使用带插件的 composer/jenkins 和 wordpress 时如何更新数据库?

php - 使用jquery模态形式将数据插入MYSQL

php - 如何在 Android Studio 中将 MySQL 数据存储在变量中?

mysql - 查找表中没有关系的行

php - 传递 .$row[something] 的值以执行另一个查询

javascript - 您能捕获连接错误吗?