[英]MySQL SQL getting most recent records in a table?
我有一個sql語句,如下所示,試圖檢索表中的最新條目。 我有兩個問題:
按ID或按日期訂購會更好嗎?
如何重寫此sql語句以按日期重新排序?
SELECT id, comment, DATE_FORMAT(entry_date, '%W %H:%i') FROM comments ORDER BY id DESC LIMIT 10
這取決於你最近的意思:
如果您指的是最近創建的記錄,那么(在大多數情況下)主鍵ID將起作用。
如果你的意思是最近更新的記錄,那么肯定是按日期。
要按日期排序,只需更改字段名稱: ORDER BY entry_date DESC
如果必須100%精確地排序最新行,則必須使用日期字段。 當您想要對最新的排序時對時間字段進行排序非常有意義,如果已編入索引,則對日期進行排序將花費相同的時間而不是為id-s排序。
id字段的值只保證是唯一的我假設,可能無法確保它們按插入時間排序。 例如,id字段可以是循環字段(6,7,8,-7,-6 ......),或者允許對表進行后續修改以更改id字段但不知道是否保留它們的排序方式插入時間或並行事務可能決定在id和date字段中以不同的順序插入新行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.