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 dernier enregistrement d'une table


Sujet :

Requêtes MySQL

Vue hybride

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 159
    Par défaut Supprimer dernier enregistrement d'une table
    Bonsoir à tous,

    J'aimerais supprimer le dernier enregistrement de plusieurs tables qui n'ont pas le même nom de champ 1 (champ ID)

    Comment appliquer le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM $table ORDER BY id DESC LIMIT 1
    J'ai un id_categorie, id_sous_categorier.... etc...


    Merci pour vos avis

  2. #2
    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 065
    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 065
    Par défaut
    Bonjour,

    Avec MySQL, peu de solutions... Essayez la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE FROM $table t1
    JOIN (SELECT MAX(id) AS max_id FROM $table) t2
    WHERE t1.id = t2.max_id
    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

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM $table
    WHERE id = (SELECT tmp.id FROM (SELECT MAX(id) id FROM $table) tmp);
    On ne peut pas utiliser l'opérateur JOIN dans un DELETE , de plus tu ne peux pas faire un SELECT sur la table ou tu veux appliquer un DELETE dans la même requête, il faut obligatoirement passer par une table temporaire (tmp dans la requête au dessus)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 159
    Par défaut
    Bonsoir,

    Je n'étais pas sur des tables liées mais sur des tables indépendantes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $q = "DELETE FROM $table1"
    $q2 = "DELETE FROM $table2"
    ...
    Avec donc des id qui ne portent pas le même nom. Ne serait il pas possible de le repérer comme le premier champ de la bdd ? ou pas son critère d'unicité ?

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    Que veux tu faire avec tes requête ? Supprimer le dernière enregistrement de différentes tables ? Car les deux requêtes que tu a données suppriment l'intégralité des enregistrements.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 159
    Par défaut
    Citation Envoyé par Exia93 Voir le message
    Que veut tu faire avec tes requête ? Supprimer le dernière enregistrement de différentes table ?
    Exact mais je ne sais pas exprimer le WHERE sachant que je n'ai pas de champs sur lequel je peux me repérer (le nom du champ id étant variable en fonction des tables)

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

Discussions similaires

  1. [VB6] Allez en avant dernier enregistrement d'une table acce
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 10/02/2006, 16h42
  2. comment rechercher les derniers enregistrement d'une table ?
    Par hornetboy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/09/2005, 10h13
  3. Récupérer dernier enregistrement d'une table?
    Par Invité dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 19/01/2004, 12h38
  4. Réponses: 10
    Dernier message: 01/08/2003, 14h45
  5. Trouver le dernier enregistrement d'une table
    Par remi59 dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/03/2003, 15h54

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