我在mySQL中有一個表,其中我記錄了在我的網站上完成的最後二十個查詢。我想在第20行之後刪除行。我用的ID,但作爲一個AUTO_INCREMENT ..如何刪除mySQL中的特定行數
1
A
回答
1
DROP TEMPORARY TABLE IF EXISTS temp_ids;
CREATE TEMPORARY TABLE temp_ids(id INT);
INSERT INTO temp_ids (id)
SELECT id FROM myTable ORDER BY id DESC LIMIT 20;
DELETE FROM myTable
WHERE
id NOT IN (SELECT id FROM temp_ids);
TEMPORARY TABLE
因爲你需要避免Error Code: 1093. You can't specify target table 'myTable' for update in FROM clause
也This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
編輯
@ gaurav.mishra280295 - 您添加了Order By id
。即使id是一個自動增量PK,也至少不能100%保證它也是插入順序。有些延遲是可能的,它不是100%可靠的。
只是作爲信息。
3
嘗試這樣的事:
delete from <table> where id not in
(select id from <table> order by <datecol> desc limit 20)
0
由於IDS是單調的,並通過每次一個,爲什麼不創建其他兩個表增加。一個存儲最舊的ID。另一個存儲ID的數量。然後使用這兩個表,您可以計算出何時開始刪除行以及要刪除哪些行。刪除時只需增加表中的id以記錄下一個要刪除的內容。
我會建議在存儲過程中這樣做。
相關問題
- 1. 如何使用php刪除/刪除mySQL中的特定錶行?
- 2. 從mysql中刪除特定的行
- 3. 如何刪除特定的mysql條目?
- 4. 如何刪除只包含特定數字的特定行?
- 5. 刪除數據庫中的特定行
- 6. 如何刪除Notepad ++上的特定行?
- 7. 如何用while刪除特定的行?
- 8. 如何在特定日期自動刪除MySQL數據庫中的行?
- 9. 從數據庫中刪除特定行
- 10. 從數據幀中刪除特定行
- 11. 如果該行具有特定的值,從MYSQL刪除行
- 12. 如何從SQLite數據庫中刪除特定的行
- 13. 如何從influxdb中刪除特定的一行數據
- 14. 如何從列表中均勻刪除特定數量的行?
- 15. 如何刪除熊貓數據框中特定日期的行?
- 16. 如何刪除數據集中的特定行?
- 17. 如何在特定時間間隔運行MySQL刪除查詢?
- 18. 刪除特定的數據表的行
- 19. 如何刪除Mysql中的空白行?
- 20. 如何刪除MySQL中的重複行?
- 21. MySQL - 刪除一行,如何?
- 22. 如何從laravel中的表中刪除特定的行5.2
- 23. 如何從android中的listview中刪除特定的行?
- 24. 如何從Android中的SQLIte中刪除特定行的特定列
- 25. 刪除從MySQL表中的一行,並修改特定領域
- 26. 刪除Python中的特定換行符
- 27. 刪除.NET RichTextBox中的特定行
- 28. 刪除特定行中的選項卡
- 29. 從文件中刪除特定的行
- 30. 刪除TableLayoutPanel中的特定行