我有以下声明:
$query = "SELECT * FROM aprstrack WHERE callsignSSID = 'VE9SC-9' order by reporttime desc limit 30 ";
它可以工作,但我将结果提供给一个 xml 文件,该文件需要与显示的顺序相反。
显示如下:
<?xml version="1.0" ?>
- <markers>
<marker call="VE9SC-9" lat="46.1088" lng="-64.8708" datetime="2012-01-20 20:26:33" course="" Speed="28" alt="" Icon="/P" />
<marker call="VE9SC-9" lat="46.1038" lng="-64.8633" datetime="2012-01-20 20:25:23" course="" Speed="26" alt="" Icon="/P" />
<marker call="VE9SC-9" lat="46.1038" lng="-64.8625" datetime="2012-01-20 20:25:19" course="" Speed="16" alt="" Icon="/P" />
<marker call="VE9SC-9" lat="46.1037" lng="-64.862" datetime="2012-01-20 20:25:11" course="" Speed="10" alt="" Icon="/P" />
<marker call="VE9SC-9" lat="46.1035" lng="-64.8622" datetime="2012-01-20 20:25:05" course="" Speed="14" alt="" Icon="/P" />
<marker call="VE9SC-9" lat="46.0978" lng="-64.86" datetime="2012-01-20 20:24:18" course="" Speed="18" alt="" Icon="/P" />
<marker call="VE9SC-9" lat="46.0943" lng="-64.8407" datetime="2012-01-20 20:21:40" course="" Speed="40" alt="" Icon="/P" />
<marker call="VE9SC-9" lat="46.0977" lng="-64.8178" datetime="2012-01-20 20:19:08" course="" Speed="12" alt="" Icon="/P" />
</markers>
最新的列在顶部,我需要的是最旧的列在顶部。
我已经尝试过 desc 和 ASC 但这不起作用,需要做什么?我上网查了一下,没有找到答案。
谢谢 斯蒂芬
最佳答案
MySQL 首先进行排序,然后限制结果。这就是为什么您会得到 30 个最旧的结果。您需要执行一个子查询,以便在提取 30 条最新记录之后进行排序:
$query = "SELECT * FROM (SELECT * FROM aprstrack WHERE callsignSSID = 'VE9SC-9' order by reporttime desc limit 30) ORDER BY reporttime ASC";
关于mysql - 发送到 xml 时对文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8954136/