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 :

Supprimer 2 lignes avec une valeur commune


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Par défaut Supprimer 2 lignes avec une valeur commune
    Bonjour,

    Voici la table que j'utilise*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     
    -------------------------------------------------------------------------
          username                  attribute                  value          
    -------------------------------------------------------------------------
     |   test		| Expiration		|	26 Jun 2011	|
     |   test		| Cleartext-Password	|	mdp	        |
     |   test1	        | Expiration		|	27 Jun 2011	|
     |   test1	        | Cleartext-Password	|	mdp1		| 
     |   test2	        | Expiration		|	28 Jun 2011	|
     |   test2	        | Cleartext-Password	|	mdp2		|
    La requête que j'effectue est la suivante*:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM table WHERE attribute='Expiration' AND value<='27 Jun 2011'
    Cependant ceci supprime uniquement les lignes avec l'attribue Expiration. Or j'aimerais pouvoir supprimer en plus des lignes avec Expiration, les lignes avec Cleartext-Password des utilisateurs concernés.

    En fait en faisant la requête ci dessus je supprime la ligne: «test1 Expiration 27 Jun 2011» et je voudrais enlever par la même occasion la ligne: «test1 Cleartext-Password mdp1»

    Le problème c'est que je ne vois vraiment pas comment faire.

    Merci pour votre aide.

  2. #2
    Membre éclairé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Par défaut
    il faut mettre OR a la place de AND

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM TABLE WHERE attribute='Expiration' OR value<='27 Jun 2011'

    A+

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 067
    Par défaut
    Bonjour,

    En passant par une jointure, ce qui est possible sous MySQL avec la syntaxe suivante, on enlève bien 4 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DELETE t1, t2 
    FROM latable t1 
    INNER JOIN latable t2 ON t1.username = t2.username AND t2.attribute = 'Cleartext-Password' 
    WHERE t1.attribute='Expiration' AND t1.value<='27 Jun 2011'
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Par défaut
    Merci pour la réponse rapide juvamine mais il y un petit soucis avec cette requête.

    En effet si je met OR dans la requête je supprime dans tous les cas les lignes avec l'attribue Expiration. Au final ma condition value devient inutile.

    Merci ced je vais essayé cette méthode tout de suite.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/07/2014, 18h14
  2. Réponses: 10
    Dernier message: 24/02/2014, 16h22
  3. [XL-2010] Renvoyer plusieurs lignes avec une valeur de référence
    Par beabianchini dans le forum Excel
    Réponses: 1
    Dernier message: 20/02/2014, 12h49
  4. [XL-2007] Comment connaître le nombre de lignes avec une valeur ?
    Par EFFLYINGJOKER dans le forum Excel
    Réponses: 4
    Dernier message: 13/05/2011, 16h31
  5. Réponses: 3
    Dernier message: 25/12/2009, 10h29

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