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

PHP & Base de données Discussion :

[SQL] Je n'arrive pas a effacer les doublons


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut [SQL] Je n'arrive pas a effacer les doublons
    Bonsoir le forum,

    J'ai un petit soucis que je vous expose ci-dessous.

    J'ai une table contenant le champ mail, et au fur et a mesure du temps plusieurs lignes contiennent la meme adresse, je voudrais nettoyer cett base en effaçant les doublons mais en gardant quand meme un exemplaire original de chaque adresse mail en doublon.

    J'ai rajouté une clé et j'ai essayé les methodes doublons relatives et absolues, mais rien toujours rien.
    J'ai essayé la methode brutale en créant une table et en faisant un copie d'adresse de table a table en passant par :
    $nbre_rangs=mysql_num_rows($res);
    if ($nbre_rangs == 0)
    etc..

    Mais il y a 40000 mails et mon hebergeur me dit qu'il y a trop de connections a partir de mon script php.

    Pouvez vous m'aider s'il vous plait?

    Merci de votre gentillesse

    P.S la versin de SQL de mon hebergeur est : MySQL 3.23.49-log

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour, tu pourrais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $q = "SELECT DISTINCT email FROM table1";
    $r = mysql_query($q);
    $nb =mysql_num_rows($r);
     
    if($nb != 0){
    $i = 0;
    while($i < $nb){
     
      $email[$i] = mysql_result($r, $i, "email");
     
      mysql_query("INSERT INTO table2 (email) VALUES ('$email[$i]') ");
     
      $i++; }
    }
    Bon c'est peut être pas la manière la plus élégante mais ça devrait fonctionner

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    En fait je pense que cela fonctionne correctement.

    J'ai demandé le tri de 36000 mails et je n'ai reçu que 23000 de l'autre coté, donc j'ai pensé comme les autres test que celui ci avait été interrompu parce que je lancé trop de requetes a la fois.

    Mais en fait j'avais bien plus d'un tiers de ma base qui était au minimum multiplié par deux.

    Donc je pense que le resultat est logique.

    Donc merci à toi.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/11/2006, 11h38
  2. [C#] SQL - je n'arrives pas a faire ma requete
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/07/2006, 14h43
  3. j'arrive pas a selectionner les champ d'un tableau a mysql
    Par ghita269 dans le forum Administration
    Réponses: 3
    Dernier message: 04/07/2006, 12h38
  4. Comment effacer les Doublons en SQL
    Par LeBigornot dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/05/2005, 10h22

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