MyMaty Posté 22 Décembre 2005 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 !!
NorSeb Posté 23 Décembre 2005 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...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant