2011-09-07 53 views
0

研究员的代码中,我有一个表,其中包含每个具有日期列的行数。我想选择最近6个最近的行。我是这样做的:重新排序SELECT LIMIT查询的输出

SELECT * 
    FROM `Stats` 
    WHERE `ProjectID` = ? 
    ORDER BY `StatsDate` DESC 
    LIMIT 6 

这将返回我需要的行,但它们在DESC日期顺序返回。我想要的是ASC日期顺序中的最后6行。我如何重新排序SELECT的输出?有任何想法吗?

感谢

+0

的可能重复[SQL拉由列排序的数据进行排序,然后从另一个角度(http://stackoverflow.com/questions/4151077/sql-to-pull-data-sorted-by -column-then-sort-it-another-way) – Johan

回答

2
SELECT * 
FROM (
    SELECT * 
    FROM `Stats` 
    WHERE `ProjectID` = ? 
    ORDER BY `StatsDate` DESC 
    LIMIT 6 
) s 
ORDER BY s.StatsDate 
+0

:)非常感谢超级提示响应!干杯!!!! – djeetee

0

环绕在以不同的顺序的外部查询和命令查询。

SELECT * FROM 
(
    SELECT * 
    FROM `Stats` 
    WHERE `ProjectID` = ? 
    ORDER BY `StatsDate` DESC 
    LIMIT 6 
) s 
ORDER BY `StatsDate` ASC 
0
SELECT * 
FROM (
FROM `Stats` 
WHERE `ProjectID` = ? 
ORDER BY `StatsDate` DESC 
LIMIT 6 
) as t 
ORDER BY t.`StatsDate` ASC; 
+0

在对方第二秒内有3个几乎相同的答案... –