2014-02-11 44 views
0

我在MySQL中創建了一個數據庫。當我嘗試獲取表格的所有記錄時,最後添加的記錄最後顯示。如何在不使用日期時間列的情況下有效顯示最新記錄?添加日期時間列將意味着重新初始化所有表,這對我來說似乎太麻煩了。如何在MySQL中首次顯示最新記錄?

+1

關係數據庫沒有任何內在的順序。如果您關心結果的順序,請添加訂單應依賴的列並使用'ORDER BY'。 – Barmar

+1

添加一個自動遞增的ID列。 – Barmar

+0

@Barmar從我的理解中,InnoDB表是在主鍵或聚簇索引上排序的,因此它不是堆。 – Namphibian

回答

2

如何在不使用 日期時間列的情況下有效顯示最新記錄?

如果您有自動增量ID列,您可以嘗試按降序排列記錄ID。

例如

SELECT * FROM my_table ORDER BY id DESC;

0

從前面的回答可以看出,許多ORM在InsAt和UpdatedAt列中執行。拍一個ORDER BY CreatedAt DESC,你可以按照你想要的順序獲得它,而且它獨立於你使用的ID。

0

你表有索引嗎?那麼你可以

SELECT * FROM table ORDER BY index DESC 
0

在適當的(時間排序的)列上使用ORDER BY。如上所述,您可以使用自動遞增的主鍵,但這不允許您選擇日期範圍。

FWIW,將時間戳列添加到現有表並不難,並且您可以在日期範圍內返回行。

近似的語法:

ALTER TABLE `table_name` 
ADD COLUMN `created_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; 

ALTER TABLE `table_name` 
ADD INDEX `created_time` (`created_time`);