2010-01-17 79 views
3

我有一個sql語句如下,試圖檢索表中最近的條目。我有兩個問題:MySQL SQL獲取表中最近的記錄?

  1. 以id或按日期排序更好嗎?

  2. 如何重寫此sql語句以按日期重新排序?

    SELECT id, comment, DATE_FORMAT(entry_date, '%W %H:%i') FROM comments ORDER BY id DESC LIMIT 10 
    

回答

5

這取決於你的意思是最新的東西:

如果你指的是最近創建的記錄,然後(在大多數情況下)按主鍵ID會工作。

如果你的意思是最近更新的記錄,那麼肯定是按日期。

按日期排序只是改變字段名稱:ORDER BY entry_date DESC

+2

如果您按日期進行訂購,請確保在'entry_date'字段中添加一個索引。 – Wim 2010-01-17 11:29:08

0

如果你必須要精確排序爲最新行100%,則必須使用日期字段。排序時間字段,當你想排序爲最新,這是非常有意義的,如果索引,日期排序將花費相同的時間排序的id-s。

id字段的值只能保證唯一我假設,可能無法確保它們按插入時間排序。例如,id字段可以是一個循環字段(6,7,8,-7,-6 ...),或者表中稍後的修改允許更改id字段,但不知道通過以下方式保留其排序:插入時間或並行事務可能決定在id和日期字段上以不同順序插入新行。