2014-01-27 49 views
3

什麼查詢刪除最早的mysql表的記錄,但離開1000年最新的。無關緊要 - 我需要1000個最新的。如何刪除最早的mysql表的記錄,但讓1000年最新

+1

發佈你的表結構和解釋根據該表的是最新的。 –

+0

請顯示錶格的佈局。基本上,您需要一個指定插入順序的列,通常是一個自動遞增的ID或時間戳列。 –

+1

從表中刪除ID不在(從表格中選擇ID按日期desc限制1000)? – David

回答

8
delete from your_table 
where id not in 
(
    select * from 
    (
     select id from your_table 
     order by id desc 
     limit 1000 
    ) x 
) 

內部select返回最近的1000個ID。另一個delete將刪除內部select以外的所有記錄。

+1

爲什麼'select * from(..)x'子查詢需要? –

+1

在Mysql中,您無法從您正在選擇的同一張表中刪除。但是你可以用中間的另一個子查詢來克服這個問題。 –

相關問題