我有一个 mysql 表,在添加其他记录之前我只需要包含 20 条最新记录。 每天都会添加新行,因此我希望它首先从最早的开始删除大于允许的 20 条记录。
该表包含一个自动递增的“id”列,因此我可以轻松确定哪些是最早的记录。
感谢您的帮助。
最佳答案
您可以在查询中使用 LIMIT
关键字指定偏移量,以便保留最新的 20 行。然而,根据 MySQL 的文档,没有简单的方法来限制从一个偏移量一直到最后一个偏移量;相反,他们建议:
To retrieve all rows from a certain offset up to the end of the result set, you can use some large number for the second parameter.
所以这个 SQL 应该可以解决问题:
DELETE FROM table ORDER BY id DESC LIMIT 20, 18446744073709551615;
关于mysql - 如果计数大于 20,如何从表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2910137/