我正在嘗試DELETE
最新的20條記錄,來自mysql
。這意味着它們將是最後20條記錄。所以問題是我該如何做到這一點?我嘗試了類似delete from MyTable limit 20
的東西,但它刪除了舊的20條記錄(意味着前20條記錄)。
我看過this question但問題是,在MyTable
,我沒有主或自動增量字段。 我希望我解釋清楚我的問題。請指導解決方案。從mysql中刪除最新的X條記錄db
1
A
回答
-1
你有自動增量ID嗎?如果有的話可以刪除最後20條記錄。
Delete from myTable Order by record DESC LIMIT 20
3
您需要一個表明哪些條目是舊的或新的條目。這可以是日期時間柱或增加的數字或任何指示順序的東西。
delete from MyTable
order by some_column desc
limit 20
但是,數據庫不會按特定順序存儲數據。你必須定義一個。
0
使用與舊錶格相同的設計創建另一個表格,但使用額外的自動遞增列。
計算舊錶格中有多少行。致電x。
讓Ÿ = X - 20
插入到新表中一切從舊錶(讓那自動遞增列自動遞增本身),但使用
limit y
現在您擁有舊錶中的所有行,除了最後的20行之外。基於某些數據排序。
最後,放棄舊錶,並解決未來未創建缺少主鍵的表,否則您將再次遇到此問題。
如果有一列確定插入行的日期和時間,則可以在插入時按升序排列。如果沒有,那麼就數據庫引擎而言,「最新的20行」沒有多大意義。
0
最快的爲每一個數據庫系統是選擇列到一個新表刪除舊的一個,並重新命名新與舊:
-- Assuming you have 100 records and want to drop the latest 30
create table `new_temp` as
select * from `old_table`
limit 70;
drop table `old_table`;
alter table `new_temp` rename to `old_table`;
你可以把一些邏輯到極限計算,但該應該引導你。
相關問題
- 1. MYSQL將多條記錄中的記錄除外最新記錄
- 2. Rails的刪除DB記錄,除了最新的10項
- 3. 從db中刪除條目
- 4. 刪除除最新5條以外的所有記錄
- 5. 如何刪除MS SQL 2005中最新的20,000條記錄?
- 6. 帶條件的MySQL最新記錄
- 7. 使用Node-MYSQL檢索MYSQl數據庫中最新的X條記錄? Node.js的
- 8. 從數組中刪除一條記錄
- 9. 從mysql數據庫的所有表中刪除一條記錄
- 10. 如何從mysql表中刪除重複的記錄,但有1條記錄
- 11. MYSQL刪除記錄
- 12. MySQL從2個表中刪除記錄
- 13. 自動從Mysql表中刪除記錄
- 14. 從mysql表中刪除所有記錄
- 15. 從MySQL數據庫中刪除記錄
- 16. 如何檢查刪除的記錄是否是最後一條記錄MySQL PHP
- 17. MySQL:根據最大值刪除記錄
- 18. 從MySQL數據庫中刪除一條記錄
- 19. 當你從數據庫中刪除一條記錄時mysql
- 20. 刪除最近三條記錄以外的記錄
- 21. 從公式中刪除最後一條記錄
- 22. 從has_many中刪除記錄而不從db中刪除? (導軌2.3.5)
- 23. 從MySQL刪除舊記錄的問題
- 24. 如何刪除在MySQL記錄並保持最新的日期
- 25. 從localStorage刪除最舊的記錄
- 26. 從刪除11g剩下1000條記錄?
- 27. 從php刪除一條記錄用php
- 28. 每個ID刪除比最新記錄舊2天的記錄
- 29. Carrierwave - 從Amazon S3中刪除文件但保留db的記錄
- 30. 刪除條件中的組的記錄?
你有沒有PK?你真的沒有桌子。 – Strawberry
如何識別最後一行,如果沒有自動增加字段?任何列作爲Date_modified? –