回答
是的,有一個auto_increment在那裏
如果你想在最後的所有在表中的行,那麼這是最後其中MAX(id)
是正確的答案的時候了!種:
SELECT fields FROM table ORDER BY id DESC LIMIT 1;
http://stackoverflow.com/a/21683753/257319 – 2014-07-16 20:07:33
恐怕如果它需要對數百萬行進行排序,這會變得很慢,不是嗎? – Slawa 2016-12-08 23:37:07
請記住,在關係數據庫中的表只是行集合。數學中的集合是無序集合。沒有第一行或最後一行;沒有前一行或下一行。
您必須先按照某個字段對無序行集進行排序,然後按照您定義的順序對結果集進行迭代。
既然你有一個自動遞增的字段,我假設你希望它是排序字段。在這種情況下,你可能要做到以下幾點:
SELECT *
FROM your_table
ORDER BY your_auto_increment_field DESC
LIMIT 1;
查看如何我們首先由your_auto_increment_field
排序集無序的行(或任何你把它叫)的降序排列。然後我們將結果集限制在LIMIT 1
的第一行。
如果您需要最近添加的時間戳,請添加時間戳並按最高時間戳順序選擇排序,限制爲1.如果您想按ID排序,請按ID排序。如果您想使用您剛添加的那個,請使用mysql_insert_id
。
可能是兩個查詢速度更快...
SELECT @last_id := MAX(id) FROM table;
SELECT * FROM table WHERE id = @last_id;
讓它簡單地使用:PDO::lastInsertId
沒錯。大多數體面的MySQL接口庫都有專門的方法,但是這個問題沒有被標記爲PHP,而是一般的MySQL語法。 – vzr 2017-04-12 13:26:21
你可以結合兩個查詢建議的@spacepille成單查詢看起來像這樣:
SELECT * FROM `table_name` WHERE id=(SELECT MAX(id) FROM `table_name`);
它應該快速工作,但在INNODB表中它比ORDER + LIMIT慢了幾分之一毫秒。
SELECT * FROM adds where id=(select max(id) from adds);
此查詢用於獲取表中的最後一條記錄。
爲什麼大家都提到訂單,最大等?
考慮到數以百萬計的條目,這不是CPU友好。
更有效的解決方案是製作觸發器,將其添加到單獨的表中的一行。這樣您可以在O(1)時間獲得值。
- 1. MySQL每天選擇最後一行
- 2. mysql從最後n行中選擇
- 3. 從MySQL中選擇最後N行 - codeigniter
- 4. 在Mysql中選擇第二個最後一行
- 5. DatagridView選擇最後一行
- 6. 選擇最後一行
- 7. MySQL從兩列中選擇組中的最後一行
- 8. 選擇最後5個MySQL行
- 9. MySQL:選擇最後執行的查詢
- 10. 在VBA中同時選擇第一行和最後一行
- 11. 在Excel中選擇最後8行Vba
- 12. 如何在MySQL中按用戶選擇最後一條記錄?
- 13. 如何在mySQL中選擇無空的最後一列
- 14. 選擇MySQL的最後一行,並停止對匹配條件
- 15. 選擇最後一個不同的行mysql
- 16. (MYSQL)選擇具有特定參數的最後一行
- 17. 如何選擇mysql_query的最後一行?
- 18. 選擇最後一行,範圍,vba
- 19. 選擇最後12行oracle
- 20. 在mysql中選擇與它們對應的最後一行不同的項目
- 21. 如何在MySQL中選擇某個列作用域的所有最後一行
- 22. MySQL:如何從表中選擇所有行除了最後一行
- 23. 在LEFT JOIN中選擇最新的一行PHP MySQL CodeIgniter
- 24. 在mysql中選擇某一行
- 25. 如何選擇MySQL中的最後n行?
- 26. 如何選擇最後3行,但最後一個
- 27. 如何在mysql的最後一個日期之前選擇最後n個月?
- 28. MySQL在查詢後選擇前5行
- 29. 選擇最近的最後一個記錄 - MySQL的PHP
- 30. 從MySQL中的一個未排序表格中選擇最後3行
定義「最後一行」。 ID最高的那個?還是最近添加的? – EboMike 2010-11-01 23:21:26
什麼表示最後一行 - 表中是否有auto_increment或DATETIME列? – 2010-11-01 23:21:29
是的,裏面有一個'auto_increment'。我想要最近添加的一個。 – esqew 2010-11-01 23:21:54