Aller au contenu

difficultés en SQL


Sujets conseillés

Posté

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 !!

Posté

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...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...