2011-09-07 20 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個幾乎相同的答案... –