一尘不染

SQL查询输出的反向顺序

sql

我有一个我无法解决的问题。我正在使用PHP通过数据库运行以下命令:

$strQuery = "select * from LastResult ORDER BY Date DESC LIMIT 10";

结果全部恢复正常,并且符合预期,但是我必须将其输入折线图中,但是当我这样做时,它们显然会反向显示,因为我有数据库按日期在DESC中返回它们,这意味着最新的将是第一个返回。

有没有一种方法可以在返回这些结果之后在将数据输入到图表之前反转它们的顺序。

这是完整的查询(请不要对使用mysql而不是mysqli进行评论,我没有写这个位)

$strQuery = "select * from LastResult ORDER BY Date DESC LIMIT 10";

$result3 = mysql_query($strQuery) or die(mysql_error());

if ($result3) {
    while($ors4 = mysql_fetch_array($result3)) {
        $NumberResults2 = $ors4['Date'];

        $strQuery = "select AvGoalDifference as Average from LastResult where Date= '$NumberResults2'";

        $result4 = mysql_query($strQuery) or die(mysql_error()); 
        $ors3 = mysql_fetch_array($result4);

        $strXML .= "<set label='" . $NumberResults2 . "' value='" . $ors3['Average'] . "' />";

        mysql_free_result($result4);
    }
}

mysql_close($link);

$strXML .= "</chart>";
$chart2 = renderChart("charts/Line.swf", "", $strXML, "AverageGD", 500, 260, false, true, true);

echo $chart2;

阅读 308

收藏
2021-03-08

共1个答案

一尘不染

您可以通过执行外部选择并按需要的方式对其排序,以对结果集进行重新排序(ASC):

SELECT * FROM (
    select * from LastResult ORDER BY Date DESC LIMIT 10
) as
ORDER BY Date ASC;

编辑 :如果失败(如在PostgreSQL 9.3.4中那样),请对内部 选择 使用别名,使其如下所示:

SELECT * FROM (
    select * from LastResult ORDER BY Date DESC LIMIT 10
) as foo
ORDER BY foo.Date ASC;
2021-03-08