2012-06-24 57 views

回答

2

刪除從一個大表9個百萬行可能需要很長的時間。在整個命令完成並且提交事務之前,不會刪除任何行。你必須要有耐心。

我也會檢查你的WHERE子句實際上是否匹配一些行。嘗試運行此聲明:

SELECT * 
FROM `messages` 
WHERE last_change < 1332201600 && last_change !=0 
LIMIT 10 

如果返回10行(它應該如果你的問題的信息是正確的),那麼你原來的DELETE語句會刪除至少那10行。

+0

問題查詢完成,但沒有刪除的行 –

+0

@babakfaghihian:你運行一個事務中?你有沒有交易?你有沒有注意到它說「x rows affected」?你能記得x報道的價值是什麼嗎? –

+0

我應該刪除這行我的問題是爲什麼沒有行刪除? –

2

也許問題出在和運營商,它應該是:

DELETE FROM `messages` WHERE last_change < 1332201600 AND last_change !=0 
+1

[AND and&&](http://dev.mysql.com/doc/refman/5.6/en/logical-operators.html#operator_and)是一樣的。 (我同意使用'AND'更好,但我認爲它不會解決問題)。 –

+0

我同意,我會走得更遠:'... last_change <'2012-06-23 12:00 am'and last_change <> 0' – paulsm4