我需要从表中删除最近ID值前60的所有行。MySQL - 在特定ID值后删除行。
EG:如果user1发布获得ID为100的消息,那么将删除ID为40的消息。
我该怎么做?我需要它来保持我的桌子干净。
感谢您的帮助。
我需要从表中删除最近ID值前60的所有行。MySQL - 在特定ID值后删除行。
EG:如果user1发布获得ID为100的消息,那么将删除ID为40的消息。
我该怎么做?我需要它来保持我的桌子干净。
感谢您的帮助。
DELETE a.* FROM YourTable AS a
JOIN (SELECT MAX(id) as MaxID FROM YourTable) AS b
ON a.id <= b.MaxID - 60;
如果表名是chat_chats,我会用chat_chats替换YourTable吗? ID是正确的。 – user3474238
当然。这只是一个占位符,你把任何实际的表名称。 – Barmar
您的要求是不正确清楚,但我试着做一些例子:简单
1)(删除最后一个ID之前的所有对象):
DELETE FROM table_name WHERE ID < lastId;
2)只有ID一个特定用户:
DELETE FROM table_name WHERE ID < lastId and USERID = myUserID;
上一个对象应该始终具有较小的ID号(如果您使用自动增量选项) 。
享受您的代码。
能给我们一个明确的例子吗? – user3517652