mysql - 如果计数大于 20,如何从表中删除

标签 mysql

我有一个 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/

相关文章:

php - 我可能会在此查询中得到 "0 rows affected"的某些原因是什么?

Mysql:3种类型的用户,行有多个条目,不能分开

c# - 如果数据库表更新/插入,如何让 Windows C# 控件自动更新?

java - hibernate控制台配置在数据库连接中找不到jdbc驱动程序

php - mysql_query() 显示包含的 PHP 函数的错误

mysql - 从数据库中选择多个最大时间戳

mysql - 当值不存在于两列中时选择

php - 刷新页面时重复插入相同的数据

php - 解码 json 文件时出现内部服务器错误

php - 排行榜 - MySQL 按个人总和排序