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 :

suppression de doublons mysql


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut [Résolu] suppression de doublons mysql
    Bonjour,

    Il s'agit de suppression de doublon mais mes requetes ne passent pas.
    Je suis en MySQL 4.1.9

    Je lis plusieurs fois par jour un fichier de log qui ce genere quotidiennement et qui évolue au fil de la journée. J'enregistre les données qui m'interessent donc plusieurs fois par jour.


    J'ai une table avec 8 champs.
    7 champs sont identiques.
    Seul le champ timestamp_unix est différent. (heure d'enregistrement)

    Ce que je souhaite supprimer les doublons de cette table en fin de journée.

    toute mes recherches n'ont pas aboutie.

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Tu dis que tu souhaites supprimer les doublons, mais quel TIMESTAMP conserves-tu ? le premier ou les suivants ? c'est ça ton problème...

    si tu t'en fous, autant faire une table archives qui aura la même structure que la première, à cela prêt qu'il y aurait une clée UNIQUE sur les sept premiers champs...

    et ensuite, un petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT IGNORE INTO archive SELECT * FROM quotidienne;
    TRUNCATE quotidienne;
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut
    dans ces 8 champs, J'ai un champ qui differencie tous l'enregistrement. il s'agit du champ que j'ai nommé "timestamp_unix" qui correspond a l'heure d'enregistrement dans la base.
    Pour les doublons :
    j'ai un champ qui peut servir pour reconnaitre un doublon.

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    et la solution que je t'ai proposé te convient-elle ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut
    travailler avec deux tables ?

    Non, la table est lue toute la journée par d'autres personnes.

    En fait il faut que je supprime les doublons a chaque fois que j'ai fini les enregistrements dans la table. 3 fois par jour.

  6. #6
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    mets une clée UNIQUE sur les sept premiers champs et fait tes insertions avec des REPLACE ou des INSERT IGNORE
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut
    c'est à dire :
    je remplace :
    $sql_sauvegardes = "INSERT INTO sauve";

    $sql_sauvegardes .= " VALUES (\"".strtoupper($serv)."\", \"".strtoupper($ss_sserv)."\", \"".$mes."\", \"".$isS."\", \"".$date."\", \"".$heu."\",".time().", \"".$stamp."\")";

    par :

    $sql_sauvegardes = "INSERT IGNORE INTO sauve";

    $sql_sauvegardes .= " VALUES (\"".strtoupper($serv)."\", \"".strtoupper($ss_sserv)."\", \"".$mes."\", \"".$isS."\", \"".$date."\", \"".$heu."\",".time().", \"".$stamp."\")";

    mais en y repensant, je peux avoir des donnees identique sur $serv, $ss_sserv, $isS, $date, $heu, time(), $stamp sauf $mes.

  8. #8
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut


    oui, c'est ça...

    pour ce qui est du positionnement de la clé UNIQUE, ça dépend de ce que tu considère être des doublons :

    si deux lignes sont des doublons SSI les trois premiers champs sont égaux, alors la clée unique doit porter sur les trois premiers champs (ensembles et PAS trois clées UNIQUE une sur chaque champ)
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut
    Merci, INSERT IGNORE INTO est la meilleure solution.

    Merci.

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

Discussions similaires

  1. Suppression de doublons sur mysql
    Par Arakiscool dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/06/2011, 11h29
  2. [Mysql 3.23] Suppression de doublons
    Par griese dans le forum Langage SQL
    Réponses: 1
    Dernier message: 03/02/2007, 14h41
  3. [langage] Suppression de doublon dans tableau
    Par LFC dans le forum Langage
    Réponses: 5
    Dernier message: 15/04/2004, 14h08
  4. Requête de suppression de doublons : besoin d'aide
    Par biocorp dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2004, 17h04
  5. [LG]Suppression de doublons
    Par moustique31 dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2003, 21h03

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