Supprimer la ligne avec l'ID le plus petit

toinou
Invité n'ayant pas de compte PHPfrance

29 août 2007, 11:39

Bonjour à tous,
J'aimerais supprimer la ligne ayant l'ID le plus petit d'une table MySQL. À première vue ça parait facile, mais je bloque :o

Code : Tout sélectionner

DELETE FROM table WHERE ID = ( SELECT MIN( ID ) FROM table )
Ce code ne fonctionne pas, pourtant c'est celui qui me parait le plus logique...
L'erreur : #1111 - Invalid use of group function
Quelqu'un aurait-il la solution?
Merci d'avance.
Cordialement,
toinou

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

29 août 2007, 12:34

As-tu vérifié la validité de ta requête SELECT toute seule ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Invité
Invité n'ayant pas de compte PHPfrance

29 août 2007, 12:41

Oui elle fonctionne très bien
Je me suis trompé pour le message d'erreur, c'est:
#1093 - You can't specify target table 'archives_connexions' for update in FROM clause

Invité
Invité n'ayant pas de compte PHPfrance

29 août 2007, 12:48

C'est bon j'ai trouvé comment faire :

Code : Tout sélectionner

DELETE FROM table ORDER BY ID ASC LIMIT 1
C'est tout simple, je sais :)
Merci à toi
@+[/code]

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 août 2007, 14:10

Sinon, dans le cas de la sous-requête, l'erreur vient du fait que la sous-requête est considérée comme un ensemble de résultat, même si elle ne retourne qu'une seule ligne.

Il aurait donc fallu écrire

Code : Tout sélectionner

DELETE FROM table WHERE ID IN ( SELECT MIN( ID ) FROM table )
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 août 2007, 14:10

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer