IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

[MySQL] Suppression d'une liste d'éléments


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut [MySQL] Suppression d'une liste d'éléments
    Bonjour,


    voici le schéma de ma table ETUDIANT

    etu_numero
    etu_nom
    etu_prenom

    J'ai une liste de "etu_numero" sous la forme suivante dans un fichier texte.
    Et je voudrai les supprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FMPOS9999027049-FMPOS9999026721-FMPOS9999026734-FMPOS9999026760-FMPOS9999026943-FMPOS9999026854-FMPOS9999026779-FMPOS9999026974-FMPOS9999026744-FMPOS9999026720-FMPOS9999027006-FMPOS9999027056-FMPOS9999026863-FMPOS9999026880-FMPOS9999026822-FMPOS9999026788-FMPOS9999026969-FMPOS9999026999-FMPOS9999026980-FMPOS9999026860-FMPOS9999026818-FMPOS9999026856-FMPOS9999026949-FMPOS9999026730
    Merci pour votre aide.

  2. #2
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    Salut,

    Quel est ton SGBD STP ?

    SI ton SGBD support INSTR (comme Oracle), tu peux faire qqchose du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM Etudiant
     WHERE INSTR(etu_numero, 'FMPOS9999027049-FMPOS9999026721-...') >0
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    MySQL, et ca ne marche pas avec ta requête..

  4. #4
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Qu'est-ce qui ne fonctionne pas ? ==> quel est le message d'erreur retourné ?

    Le code que tu as fournis est-ce la valeur du champs ou une partie de celui-ci ?

    Quelques possibilités; à toi de voir celle qui fonctionne. Note que tu devrais certainement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE FROM Etudiant
     WHERE etu_numero LIKE '%FMPOS9999027049-FMPOS9999026721-FMPOS9999026734-FMPOS9999026760-FMPOS9999026943-FMPOS9999026854-FMPOS9999026779-FMPOS9999026974-FMPOS9999026744-FMPOS9999026720-FMPOS9999027006-FMPOS9999027056-FMPOS9999026863-FMPOS9999026880-FMPOS9999026822-FMPOS9999026788-FMPOS9999026969-FMPOS9999026999-FMPOS9999026980-FMPOS9999026860-FMPOS9999026818-FMPOS9999026856-FMPOS9999026949-FMPOS9999026730%') 
     
    DELETE FROM Etudiant
     WHERE etu_numero='FMPOS9999027049-FMPOS9999026721-FMPOS9999026734-FMPOS9999026760-FMPOS9999026943-FMPOS9999026854-FMPOS9999026779-FMPOS9999026974-FMPOS9999026744-FMPOS9999026720-FMPOS9999027006-FMPOS9999027056-FMPOS9999026863-FMPOS9999026880-FMPOS9999026822-FMPOS9999026788-FMPOS9999026969-FMPOS9999026999-FMPOS9999026980-FMPOS9999026860-FMPOS9999026818-FMPOS9999026856-FMPOS9999026949-FMPOS9999026730')

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    beh en fait

    j ai une liste de etu_numero
    FMPOS9999027018
    FMPOS9999026931
    FMPOS9999026870
    FMPOS9999027000
    FMPOS9999027010
    FMPOS9999026992
    FMPOS9999026898
    FMPOS9999026812
    FMPOS9999026776
    FMPOS9999026923
    ...

    et je voudrai supprimer toutes les lignes de la table ou le etu_numero est egal a un elemen de la liste

    désolé je n ai pas été très clair

  6. #6
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonjour,

    C'est dommage que ce soit du TXT. Ce qui aurais pu être plus simple et d'importer un fichier XML directement dans une table ou temporaire ou en dur avec LOAD_FILE() ou au travers d'une procédure stockée !

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  7. #7
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    Citation Envoyé par parasol007 Voir le message
    MySQL, et ca ne marche pas avec ta requête..
    Alors il faut chercher l'équivalent de INSTR en MySQL, ça doit être la fonction POSITION ...

    Mais ma solution ne marche que si tu as une chaîne dans lequel tu as concaténé tous tes n°, comme dans ton premier post. Si tu stockes tes n° à supprimer dans un fichier texte, c'est clair que le SQL seul ne va pas répondre à ta problématique, cf les propositions que l'on t'a fait ci-dessus.
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  8. #8
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Salut Xo !

    C'est bien POSITION (ou son synonyme LOCATE). Ta requête devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DELETE FROM Etudiant
     WHERE POSITION(etu_numero IN 'FMPOS9999027049-FMPOS9999026721-...') >0
    EDIT : en fait, INSTR existe bien dans MySQL , la requête de Snipah devrait donc marcher parfaitement.

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Par défaut
    En fait, l'ordre des arguments de INSTR est inversé dans la requête de Xo... ça donne donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM Etudiant
     WHERE INSTR('FMPOS9999027049-FMPOS9999026721-......', etu_numero) >0

Discussions similaires

  1. [VB]Ja'imerais afficher une liste d'éléments...
    Par STRUFIELD dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/01/2006, 18h49
  2. a jour ou suppression a une liste deroulante
    Par kouame berenger aymar dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 03/12/2005, 08h06
  3. [Regex][Avis] Méthode de suppression d'une liste de mots
    Par manal dans le forum Collection et Stream
    Réponses: 22
    Dernier message: 15/10/2005, 00h39
  4. [struts] afficher page par page une liste d'élément
    Par BurningPat dans le forum Struts 1
    Réponses: 6
    Dernier message: 27/09/2005, 11h09
  5. [LG]suppression dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 9
    Dernier message: 16/12/2003, 21h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo