0

それで、「独自のハンバーガーを作成する」アプリケーション用のハイスコア テーブルを作成しようとしています。

私の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 の修正はありますか? もしそうなら、どのように?

前もって感謝します、

トーマス

4

1 に答える 1

0

比率で注文する必要があります。

ORDER BY Rating.TotalScore/Rating.TotalVotes DESC
于 2013-05-09T23:23:39.230 に答える