Version complète: sur le forum Webmaster Hub : difficultés en SQL
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
MyMaty
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 ?
CODE
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
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...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.