首页 > 解决方案 > 重新排序 Mysql 查询结果

问题描述

我有以下 mysql 查询,其中 Id 是主键,从 1,2 ... 到 450 等自动递增。

$query = "SELECT Id, PromA, PromB, PromC FROM Promtab Order by Id DESC Limit 200"; 
$aresult = $con->query($query);

和以下 PHP 片段:

<?php
while($row = mysqli_fetch_assoc($aresult)){
    echo "[".$row["Id"].", ".$row["PromA"].",".$row["PromB"].",".$row["PromC"]."],";
}
?>       

当我使用当前查询和 php 代码时,我得到结果(IdData DESC order):

    Id,  PromA, PromB, PromC
    450   230    220    200
    449   150    140    180
    448   221    70     145
    .
    .
    1     120    110    105

我需要的是这个(仅Id ASC order,数据顺序不会改变):

    Id,  PromA, PromB, PromC
     1   230    220    200
     2   150    140    180
     3   221    70     145
     .
     .
    450    120    110    105

我怎么能简单地做到这一点?

谢谢。

标签: phpmysql

解决方案


如果我对您的理解正确,您不希望查看针对行的实际 ID,而只是查看从 1 到 200 的数字序号(您有LIMIT 200)。在这种情况下,您可以执行以下操作:

$query = "SELECT PromA, PromB, PromC FROM Promtab Order by Id DESC Limit 200"; 
$aresult = $con->query($query);

$id = 1;
while ($row = mysqli_fetch_assoc($aresult)) {
    echo "[" . ($id++) . ", {$row['PromA']}, {$row['PromB']}, {$row['PromC']}]";
}

推荐阅读