2014-04-21 82 views
0

我需要从表中删除最近ID值前60的所有行。MySQL - 在特定ID值后删除行。

EG:如果user1发布获得ID为100的消息,那么将删除ID为40的消息。

我该怎么做?我需要它来保持我的桌子干净。

感谢您的帮助。

+2

能给我们一个明确的例子吗? – user3517652

回答

5
DELETE a.* FROM YourTable AS a 
JOIN (SELECT MAX(id) as MaxID FROM YourTable) AS b 
ON a.id <= b.MaxID - 60; 
+0

如果表名是chat_chats,我会用chat_chats替换YourTable吗? ID是正确的。 – user3474238

+0

当然。这只是一个占位符,你把任何实际的表名称。 – Barmar

1

您的要求是不正确清楚,但我试着做一些例子:简单

1)(删除最后一个ID之前的所有对象):

DELETE FROM table_name WHERE ID < lastId; 

2)只有ID一个特定用户:

DELETE FROM table_name WHERE ID < lastId and USERID = myUserID; 

上一个对象应该始终具有较小的ID号(如果您使用自动增量选项) 。

享受您的代码。