我有一个mysql表,用于跟踪用户首选项。 该表由user_id,名称和时间戳
组成(user_id,名称是PK)
如果条目已存在,我将时间戳更新为当前时间
现在,我想要的是,每个用户最近150个条目是活跃的。 每次用户登录时,我都想运行查询以删除任何要删除的条目。
但是,我无法理解实现类似内容的删除查询。
任何帮助?
答案 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
基本上,我创建了一个临时表,其中包含我想要删除的所有条目,然后使用内部联接进行删除
工作得很好