仅在同一 ID 中显示一行


Show one row only in same id

我想问一下如何仅在相同的id中显示一行,在下面的示例中,我只想在表中显示最高分结果。

这是我的代码

    $query = "SELECT * FROM memberdata ORDER BY score DESC";
    echo "<table border=1>
    <tr>
    <th> id </th>
    <th> score </th>
    </tr>";
    while($row = mysqli_fetch_array($result)) {
        echo "<tr>";
        echo "<td>" . $row['id'] . "</td>";
        echo "<td>" . $row['score'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";

输出是

id score 
1  5000
1  4000
1  3000
1  500
2  3000
2  1000

使用分组依据

SELECT id, MAX(score) AS score FROM memberdata GROUP BY id

试试这个:

SELECT id, MAX(score) AS score FROM memberdata GROUP BY id

或者这个:

SELECT * FROM memberdata ORDER BY score DESC LIMIT 1

您需要先迭代以找到maxrow。

    $query = "SELECT * FROM memberdata ORDER BY score DESC";
    echo "<table border=1>
    <tr>
    <th> id </th>
    <th> score </th>
    </tr>";
    $maxrow = mysqli_fetch_array($result);
    while($row = mysqli_fetch_array($result)) {
        if ($maxrow['score'] > row['score']) maxrow = row;
    }
    echo "<tr>";
    echo "<td>" . $maxrow['id'] . "</td>";
    echo "<td>" . $maxrow['score'] . "</td>";
    echo "</tr>";
    echo "</table>";