2011-12-02 55 views

回答

75
DELETE FROM table WHERE date < '2011-09-21 08:21:22'; 
+1

在這裏,我在做類似的東西「BEFORE」作爲關鍵詞...... – Tominator

16

這幫助我刪除基於不同屬性的數據。這是很危險所以一定要確保你這樣做之前備份數據庫或表:

mysqldump -h hotsname -u username -p password database_name > backup_folder/backup_filename.txt 

現在,你可以執行刪除操作:

delete from table_name where column_name < DATE_SUB(NOW() , INTERVAL 1 DAY) 

這會從第一天開始之前刪除所有數據。從6個月前刪除數據:

delete from table_name where column_name < DATE_SUB(NOW() , INTERVAL 6 MONTH) 
+0

這是我需要的,謝謝。對我而言,唯一困惑的是你必須寫出「6個月」而不是「6個月」,因爲MySQL無法識別它。這是保持審計日誌易於管理的好方法。 –

5

要顯示的結果,直到昨天

WHERE DATE(date_time) < CURDATE() 

要顯示10天

WHERE date_time < NOW() - INTERVAL 10 DAY 

結果顯示前10天

WHERE DATE(date_time) < DATE(NOW() - INTERVAL 10 DAY) 
結果

這些將工作你

你可以找到日期,這樣

SELECT DATE(NOW() - INTERVAL 11 DAY) 
+0

這真的很有幫助。 –

相關問題