同道编码员,我有一个包含多个行的表,每个行都有一个日期列。我想选择最近的6个最近的行。我可以这样做:
SELECT *
FROM `Stats`
WHERE `ProjectID` = ?
ORDER BY `StatsDate` DESC
LIMIT 6
这将返回我需要的行,但它们以DESC日期顺序返回。我想要的是ASC日期顺序中的最后6行。如何重新排序SELECT的输出?有任何想法吗?
感谢
答案 0 :(得分:2)
SELECT *
FROM (
SELECT *
FROM `Stats`
WHERE `ProjectID` = ?
ORDER BY `StatsDate` DESC
LIMIT 6
) s
ORDER BY s.StatsDate
答案 1 :(得分:0)
在外部查询中包围查询,并以不同的顺序排序。
SELECT * FROM
(
SELECT *
FROM `Stats`
WHERE `ProjectID` = ?
ORDER BY `StatsDate` DESC
LIMIT 6
) s
ORDER BY `StatsDate` ASC
答案 2 :(得分:0)
SELECT *
FROM (
FROM `Stats`
WHERE `ProjectID` = ?
ORDER BY `StatsDate` DESC
LIMIT 6
) as t
ORDER BY t.`StatsDate` ASC;