Page 1 sur 1

Supprimer la ligne avec l'ID le plus petit

Posté : 29 août 2007, 11:39
par toinou
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

Posté : 29 août 2007, 12:34
par mere-teresa
As-tu vérifié la validité de ta requête SELECT toute seule ?

Posté : 29 août 2007, 12:41
par Invité
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

Posté : 29 août 2007, 12:48
par Invité
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]

Posté : 29 août 2007, 14:10
par zeus
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 )

Posté : 29 août 2007, 14:10
par zeus
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 !!! ;)