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 :

delet tant que


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 7
    Par défaut delet tant que
    Voici ma table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    id_historique   	 type   	 id_correspondant
    28  			   modifier  	   2
    32 			   modifier 	   3
    33 			   select 	   2
    34 			   modifier 	   5
    49 			   select 	   1
    50 			   select 	   1
    Je souhaiterai supprimer les tant qu'on a pas rencontré l'élément select, donc supprémier 28,32.

    Quelqu'un peut m'aider?

  2. #2
    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
    Le premier SELECT par ordre d'id_historique se détecte avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT MIN(id_historique) FROM ta_table WHERE type = 'SELECT' ;
    Donc pour ton élimination, ça devrait donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DELETE FROM ta_table 
    WHERE id_historique < (
      SELECT MIN(id_historique) AS Limite
      FROM ta_table 
      WHERE type = 'SELECT' 
    )
    En fait, il faut mettre un niveau de sous-requête en +, pour contourner l'interdiction de lire et supprimer sur la même table dans la même requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DELETE FROM ta_table 
    WHERE id_historique < (
      (SELECT Limite FROM 
        (SELECT MIN(id_historique) AS Limite
         FROM ta_table 
         WHERE type = 'SELECT' 
      ) AS Tempo
    )

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 7
    Par défaut merci
    merci

  4. #4
    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
    Attention, j'ai édité mon message pendant que tu répondais...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 7
    Par défaut
    Au finale j'ai utilisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from historique where id_historique < (select id_historique from historique where type='select' limit 1)

  6. #6
    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
    attention, la table ne va pas forcément rester triée sur les id...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT * 
    FROM historique 
    WHERE id_historique < (
      SELECT id_historique 
      FROM historique 
      WHERE type='select' 
      ORDER BY id_historique
      LIMIT 1
    )
    PS : tu fais un SELECT pour supprimer ???

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

Discussions similaires

  1. [VB6] Exécuter un programme en tant que...
    Par Le_Tolier dans le forum VB 6 et antérieur
    Réponses: 36
    Dernier message: 28/05/2004, 14h53
  2. Postmaster en tant que service NT
    Par krimson dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 16/04/2004, 09h08
  3. Licence MySql en tant que BD dans une application web
    Par Volta dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/02/2004, 14h38
  4. [] [Winsock] Pb si je me déconnecte en tant que client
    Par vbcasimir dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 29/04/2003, 18h42
  5. [DROIT] Droits d'auteurs moraux en tant que salariés ?
    Par malotte dans le forum Juridique
    Réponses: 14
    Dernier message: 13/02/2003, 15h56

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