2010-10-13 14 views
3

Essayé ainsi requête avec "SELECT *" au lieu de "DELETE FROM" et cela a fonctionné parfaitement. .Erreur MySQL? Où l'erreur de syntaxe?

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 Erreur: # 1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 't1 WHERE EXISTS (SELECT 1 de 80dage_garmin_track` t2 O WH t1.Le' à la ligne 1

Répondre

3

MySQL ne permet pas toutes sortes de sous-sélections dans la clause WHERE de DELETE, voir this thread Vous pouvez (ou ne pouvez pas) être bien, si vous supprimez l'alias de table (t1), qui n'est également pas autorisé pour SUPPRIMER

+0

+1 pour ... supprimer l'alias de la table (t1), qui n'est pas non plus autorisé pour DELETE – kevchadders

+0

J'ai fait un SELECT de la requête et j'ai sélectionné toutes les lignes dans phpmyadmin et les ai supprimées. – Holsteinkaa