2010-10-13 81 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