从mysql数据库中获取最高分数

oo7oh9g9  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(424)

我建立了一个数据库:

以及生成的表:

我正在尝试从数据库中检索数据,以便输出按照得分最高的玩家按降序显示。但是,我得到以下输出:

数据库中记录的波利温克尔·安德森的高分是600分,但只显示了她的200分。我怎样才能找回每个球员的最高分数?分数被存储为varchar,我阅读了类似问题的解决方案,这些问题需要转换成int。我试过这样做,但仍然不起作用。我是一个新的编程一般,任何帮助将不胜感激。我的代码在下面。谢谢您。

<?php
    $sql = "SELECT * , COUNT(*) AS `phone` FROM `players` GROUP BY 
CONCAT(`fname`, `surname`) ORDER BY MAX(CONVERT(`score`,INT)) DESC";

    $result = mysqli_query($conn,$sql)or die(mysqli_error());
    echo "<table>";
    echo "<tr><th>Firstname</th><th>Surname</th><th>Email</th><th>Score</th> 
 <th>Number of Submissions</th></tr>";

    while($row = mysqli_fetch_array($result)) {
        $fname = $row['fname'];
        $surname = $row['surname'];
        $email = $row['email'];
        $score = $row['score'];
        $phone = $row['phone'];
        echo "<tr><td style='width: 200px;'>".$fname."</td><td style='width: 
200px;'>".$surname."</td><td style='width: 200px;'>".$email."</td><td 
style='width: 200px;'>".$score."</td><td style='width: 200px;'>".$phone."

"; }

echo "</table>";

    mysqli_close($conn);
?>
tyg4sfes

tyg4sfes1#

如果你想列出你的球员按他们的得分排序,你不需要一个计数或分组的任何东西。您只需使用order by进行简单的select查询,如:

select * from players order by score
huwehgph

huwehgph2#

您可以尝试以下操作:

SELECT fname,surname,MAX(CONVERT(`score`,INT)) as score, COUNT(*) AS `submission` 
FROM `players` 
GROUP BY fname,surname
ORDER BY score desc

相关问题