mysql - 每个用户保留 150 个最新条目

标签 mysql sql-delete

我有一个 mysql 表,用于跟踪用户首选项。 该表由 user_id、名称和时间戳组成

(user_id,名称为PK)

如果条目已存在,我会将时间戳更新为当前时间

现在,我希望每个用户的 150 个最新条目处于事件状态。 每次用户登录时,我想运行查询来删除所有要删除的条目。

但是,我无法理解实现类似功能的删除查询。

有什么帮助吗?

最佳答案

我编辑了答案。我告诉你删除最近的 150 行,这不是你想要的。以下是删除所有其他行的方法:

DELETE FROM preferences WHERE user_id NOT IN (SELECT user_id FROM preferences ORDER BY timestamp DESC LIMIT 150)

关于mysql - 每个用户保留 150 个最新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8787688/

相关文章:

mysql - DELETE JOIN 出现问题

php - 从表中删除重复项,其中有两个变量需要考虑

PHP 不存储 session ID

mysql - 在 php mysql_fetch_array() 和 mysql_fetch_row() 中不在同一个变量上工作

php - Python 3 标准化 URL

mysql - 使用日期格式的 INSERT ... SELECT

mysql - MySQL加载数据失败

php - mySQL 删除时出现意外标记

mysql - 删除列中超过 30 天的所有行的过程

php - 通过抓取链接删除整个mysql行?