我在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. 如何刪除perl中的特定行?
- 4. 如何刪除parse.com中的特定行?
- 5. 如何刪除codeigniter中的特定行?
- 6. 如何刪除表中的特定行
- 7. 如何刪除特定的mysql條目?
- 8. 如何在php函數中刪除頁面中的mySQL中的特定行
- 9. 如何刪除只包含特定數字的特定行?
- 10. 如何從列表中的MySQL刪除特定數字
- 11. 刪除數據框中的特定行?
- 12. 刪除數據庫中的特定行
- 13. 用MySQL中的特定參數刪除多行
- 14. MYSQL刪除特定行按鈕PHP
- 15. MySQL - 在特定ID值後刪除行。
- 16. 如何刪除Notepad ++上的特定行?
- 17. 如何用while刪除特定的行?
- 18. 如何在特定日期自動刪除MySQL數據庫中的行?
- 19. 如何從richTextBox中刪除/刪除特定文本行?
- 20. 從數據幀中刪除特定行
- 21. 從數據庫中刪除特定行
- 22. 如何刪除SQLite中特定列的特定數據?
- 23. 如果該行具有特定的值,從MYSQL刪除行
- 24. 如何刪除html表格和數據庫中的特定行
- 25. 如何刪除數據集中的特定行?
- 26. 如何刪除熊貓數據框中的特定重複行?
- 27. 如何從influxdb中刪除特定的一行數據
- 28. 如何從SQLite數據庫中刪除特定的行
- 29. 如何從列表中均勻刪除特定數量的行?
- 30. 如何刪除熊貓數據框中特定日期的行?