所以我有一個有趣的問題,我不確定是否被認爲是'黑客'。我查看了一些問題,但沒有找到重複的東西,所以在這裏。基本上,我需要知道這是不可靠還是被認爲是不好的做法。有問題的SQL練習 - 按ID而不是創建時間
我有一個非常簡單的表,具有唯一的自動遞增ID和created_at時間戳。 (我的問題的簡化版本,以澄清有關的概念)
+-----------+--------------------+
| id |created_at |
+-----------+--------------------+
| 1 |2012-12-11 20:35:19 |
| 2 |2012-12-12 20:35:19 |
| 3 |2012-12-13 20:35:19 |
| 4 |2012-12-14 20:35:19 |
+-----------+--------------------+
這兩列的動態添加,因此可以說是一個新的「插入」將總是有較大的ID和ALWAYS有一個更大的日期。
目的 - 非常簡單地抓取通過created_at下令結果降序排列
解決方案的一個 - 查詢按日期順序降序排列
SELECT * FROM tablename
ORDER BY created_at DESC
解法 - 按ID降序排列的查詢
SELECT * FROM tablename
ORDER BY id DESC
解決方案二被認爲是不好的做法?或者解決方案二是做事的正確方式。任何關於你的推理的解釋都會非常有幫助,因爲我試圖理解這個概念,而不僅僅是簡單地得到答案。提前致謝。
那麼,按id排序可以並將利用索引。您應該將相關部分的模式包含到問題中。 – Perception
雖然我不知道是否有'官方的方式'去解決這個問題,'order by'查詢的存在就是爲了做到這一點。按列排序。我看到的唯一缺點是,時間戳可能有重複(兩個插入在同一秒內),並且由於缺少索引,查詢可能會變慢。 – ATaylor