2014-04-21 117 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號(如果您使用自動增量選項) 。

享受您的代碼。