我有以下声明:
$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,但这将不会工作,需要做什么?我已经在网上找过了,我找不到答案。
谢谢,斯蒂芬
发布于 2012-01-22 00:58:34
MySQL首先进行排序,然后限制结果。这就是为什么你会得到30个最老的结果。您需要执行子查询,以便在提取30条最新记录后进行排序:
$query = "SELECT * FROM (SELECT * FROM aprstrack WHERE callsignSSID = 'VE9SC-9' order by reporttime desc limit 30) ORDER BY reporttime ASC";https://stackoverflow.com/questions/8954136
复制相似问题