MyMaty Posté 22 Décembre 2005 Partager Posté 22 Décembre 2005 Bonjour, j'ai une requete qui me pose des problèmes... j'aimerais faire ceci : Supprimer toutes les occurences qui ne sont pas dans les 3 premières d'un 'ORDER BY' sur un des champs de ma table. Donc si j'ai 4 enregistrement avec les valeurs 1, 2, 3 et 4 dans la colonne de tri. Je veux que ma requête supprime l'entrée qui est à 4 (ou à 1 selon le sens du ORDER BY), et seulement elle. Une idée quelqu'un ? DELETE FROM `client` WHERE id not in (SELECT id from `client` ORDER BY id ASC LIMIT 0,3); cela ne fonctionnant pas visiblement ... car le LIMIT dans la sous-requête n'est pas accepté. Merci a vous !! Lien vers le commentaire Partager sur d’autres sites More sharing options...
NorSeb Posté 23 Décembre 2005 Partager Posté 23 Décembre 2005 Bonjour, Je crois que tu ne peux pas, avec Mysql en tous cas, imbriquer un select dans un delete. A moins que ce ne soit simplement que le "not in" qui ne fonctionne pas. Bref, je pense que tu n'as pas le choix : soit la clause WHERE remplie les conditions, soit tu est obligé de passer par une requète intermédiaire qui te permet de sélectionner les enregistrements à supprimer... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant