我在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中的特定行