我有一些我无法解决的问题。我使用PHP在我的数据库中运行以下代码:
$strQuery = "select * from LastResult ORDER BY Date DESC LIMIT 10";
结果都恢复正常,正如预期的那样,但是我必须将它们输入到折线图中,但是当我这样做时,它们显然是反向显示的,因为我有DB在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;
答案 0 :(得分:12)
您可以通过执行外部选择并按照您希望的方式(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;
答案 1 :(得分:0)
您可以在以下查询中执行此操作:
$strQuery = "select * FROM (select * from LastResult ORDER BY Date DESC LIMIT 10) ORDER BY Date";
答案 2 :(得分:0)
我会将此作为评论发布,但我没有足够的权限来做到这一点。
别忘了别名内部选择,否则mysql会产生错误。
SELECT * FROM (
select * from LastResult ORDER BY Date DESC LIMIT 10
) aliasT
ORDER BY Date ASC;
答案 3 :(得分:0)
尝试使用此功能;
SELECT * FROM (
select * from LastResult ORDER BY Date DESC LIMIT 10
)
ORDER BY Date ASC;
答案 4 :(得分:0)
如果您使用谷歌折线图,则可以在绘制图表时完成订单的逆转。
hAxis {
direction: -1
}
我有3个约会,01 / 01,01,02,01,03,01 / 04我想要前3个但是要按日期顺序显示,不要反过来挑选最后3个! 这解决了我的问题。