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

时间:2012-01-09 11:27:52

标签: mysql sql-delete

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

组成

(user_id,名称是PK)

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

现在,我想要的是,每个用户最近150个条目是活跃的。 每次用户登录时,我都想运行查询以删除任何要删除的条目。

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

任何帮助?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

跟随这里提到的黑客 http://helphow.info/?qa=209695/solved-mysql-delete-from-limit-x-y-would-not

基本上,我创建了一个临时表,其中包含我想要删除的所有条目,然后使用内部联接进行删除

工作得很好