2011-08-11 40 views
2

使用mysql,如何從表中刪除所有行,但保留200條記錄?從表中刪除行,但保持給定的編號

顯而易見的方法是統計它們,做一些算術運算並刪除正確的數字。但是mysql有一些內置函數可以在一個刪除查詢中執行嗎?

+0

你是說你想要刪除所有記錄,但是記錄了x條記錄,或者你是否想要刪除所有記錄,但在其他位置備份記錄? – Josh

+0

@Josh我想刪除所有,但x記錄。之後他們留在桌上。 –

+0

哪200個記錄不應該被刪除?你有日期時間專欄,想保留200條最新的唱片嗎? –

回答

3

您可以刪除使用條件:

delete from YourTable 
where YourSequentialID > 200 

但是你連續可能有差距,所以你不會有正是 200行。所以你可以做的是處理你的狀況。

找到要保存記錄(說的第200),並刪除一切:

delete from YourTable 
where id not in 
(
select ID 
from YourTable 
LIMIT 200 
) 

我知道,那可能會很慢。但這不是一個生產查詢,它只是一個清理查詢。你可以忍受只需運行一次。