2010-10-13 90 views
3

嘗試查詢「SELECT *」而不是「DELETE FROM」,它的工作很完美。 。MySQL錯誤?哪裏的語法錯誤?

DELETE FROM `80dage_garmin_track` t1 WHERE EXISTS (

SELECT 1 
FROM `80dage_garmin_track` t2 
WHERE t1.Length = t2.Length 
AND t1.Time = t2.Time 
AND t1.idgarmin_track > t2.idgarmin_track 
) 

MySQL的錯誤: #1064 - 你有一個錯誤的SQL語法;檢查與您的MySQL服務器版本相對應的手冊,以便在't1 WHERE EXISTS(選擇1從80dage_garmin_track't2'WHERE t1.Le'在第1行'')處使用正確的語法。

回答

3

MySQL不允許所有種類的子選擇DELETE的WHERE子句,請參閱this thread。如果刪除表格別名(t1)(也不允許用於DELETE),則可能(或可能不會)會罰款。

+0

+1 for ... drop the table alias (t1),這也是不允許的DELETE – kevchadders 2010-10-13 09:29:10

+0

我做了一個查詢的SELECT,並選擇了phpmyadmin中的所有行,並刪除它們,結果很好。 – Holsteinkaa 2010-10-15 08:26:31