MySQL选择最后一个' n'按日期记录,但从最旧到最新排序

时间:2014-08-14 15:38:36

标签: mysql

我有一个包含datetime列的事务的表。我正在尝试选择最后的'n'个记录(即20行),但是将它从最旧到最新排序。

SELECT *
FROM table
WHERE 1=1
ORDER BY table.datefield DESC
LIMIT 20;

给我20个最近的,但顺序相反。

这可能在一个查询中,或者我是否必须进行查询才能获得总行数,然后根据它调整限制,以便我可以执行table.datefiled ASC然后限制(总行数 - n ),n

1 个答案:

答案 0 :(得分:2)

围绕原始SELECT构建SELECT并将其转换为派生表应该这样做

SELECT t.*
FROM (
    SELECT *
    FROM table
    WHERE 1=1
    ORDER BY table.datefield DESC
    LIMIT 20
) t
ORDER BY t.datefield