如何在订购 MYSQL table 时获取行的位置

How to get the position of a row when a MYSQL table is ordered

我想在按降序排列table时找到一行的位置。我使用以下命令按降序排列行。

SELECT * FROM feature Order BY Votes DESC

我需要找出该行与其他行相比处于什么位置,例如第 1、5、8... 我正在考虑使用一个循环,该循环按从大到小的顺序遍历每个值,如果投票大于前一个值但大于下一个值,则可以找到该位置。但是,如果 table 中有很多行,我发现这是不切实际的。我怎样才能找到一行的相对位置?一个简单的方向就足够了。

如果我理解正确的话,您可以将结果作为关联数组进行循环,每次迭代都会增加一个 $i 变量。 $i 变量会按顺序告诉您每一行的位置。

$query = "SELECT * FROM feature Order BY Votes DESC";
$result = mysqli_query($connect, $query);

$i = 1;
while ($row = mysqli_fetch_assoc($result)) {
    $id = $row['idColumnName'];
    if ($id == 'idNumber'){
        echo("My ID is: ".$id." and I am voted number: ".$i);
    }
    $i++;
}