【问题标题】:How to divide 2 joined SQL columns?如何划分 2 个连接的 SQL 列?
【发布时间】:2013-05-04 13:51:49
【问题描述】:

所以我试图为“创建自己的汉堡”应用程序创建一个高分表。

我的 SQL 查询:

SELECT Save_Burger.Name, Rating.TotalScore, Rating.TotalVotes FROM Save_Burger INNER JOIN Rating ON Save_Burger.RatingID=Rating.RatingID ORDER BY Rating.TotalScore DESC

返回:

|---------------------------------------|
|  Name   |  TotalScore  |  TotalVotes  |
|Burger1  |     11       |      3       |
|Burger2  |      6       |      2       |
|Burger3  |      5       |      5       |
|Burger4  |      2       |      1       |
|Burger5  |      0       |      0       |
|---------------------------------------|

然后我使用 PHP 来划分 TotalScore 和 TotalVotes:

if (($row["TotalScore"] != 0) || ($row["TotalVotes"] != 0)) {
            $TotalRatingScore = $row["TotalScore"] / $row["TotalVotes"];
            echo substr($TotalRatingScore, 0, 3);
        }
        else {
            echo 0;

代码运行良好。问题是它没有首先回显最高分割值。因此,即使 Burger3 的平均评分为 1,它仍然以平均评分 2 超过 Burger4。

最好的选择是什么?我应该从 SQL 查询中分离出来还是有 PHP 修复?如果有,怎么做?

提前致谢,

托马斯

【问题讨论】:

  • 顺便说一句,我使用 while($row = mysqli_fetch_array($variable)) 进行回显。

标签: php sql join rating divide


【解决方案1】:

您需要按比例订购:

ORDER BY Rating.TotalScore/Rating.TotalVotes DESC

【讨论】:

  • 我爱你。工作。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多