簡體   English   中英

MySQL按日期選擇最后的“ n”條記錄,但從最舊到最新

[英]MySQL select last 'n' records by date, but sorted oldest to newest

我有一個表,其中包含帶有datetime列的事務。 我正在嘗試選擇最后一個'n'記錄(即20行),但是將其從最舊到最新進行了排序。

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

給我最近的20個,但順序相反。

是否可以在一個查詢中這樣做,還是我必須做一個查詢以獲取總行數,然后根據此值調整限制,所以我可以執行table.datefiled ASC,然后限制(總行數-n),n

圍繞原始SELECT構建SELECT並將其轉換為派生表應該可以做到這一點

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM