DELETE * FROM TABLE WHERE "doppelte einträge"??

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DELETE * FROM TABLE WHERE "doppelte einträge"??

    Hallo Leute!
    Gibt es eine Möglichkeit mit einem Befehl in dieser Art oder einer ähnlichen Art alle doppelten Einträge zu löschen?

    DELETE * FROM TABLE WHERE "doppelte einträge"

    Falls es so nicht geht, welche Möglichkeit habe ich sonst noch die doppelten Einträge einfach und schnell herauszufiltern? Das Problem ist u.a. auch die Performance, da die DB mehrere Mio. Einträge enthält.

    Vielen Dank für jede Form der Hilfe!!

    Liebe Grüße
    Sebi

  • #2
    ok, habe hier im forum bereits einen sehr guten Beitrag gefunden. Leider funktioniert dieses Script nur bei einem einzigen Zellenkriterium. Bei meinem Fall müssen wirklich alle Zellen eines Datensatzes überprüft werden. Lässt sich soetwas auch mit so einem Script realisieren?



    PHP-Code:
    $tabelle "userinfos";  //tabellenname
    $spalte  "deb_name";   //spaltenname

    $query "select $spalte, count($spalte) as anzahl, 
        min(id) as dieser_nicht from 
    $tabelle 
        group by 
    $spalte having anzahl > 1 ";

    $result mysql_query($query);
    if(!
    $result) {echo mysql_error();}

    while(
    $row mysql_fetch_array($result))
    {
      
    $dieser_nicht $row['dieser_nicht'];
      
    $doublette $row[$spalte];
      
    $limit $row['anzahl'] - 1;

      echo 
    $row['anzahl']. " x " $doublette"<br>";

      
    $del " delete from $tabelle where email = '$doublette
          and id != '
    $dieser_nicht' limit $limit ";

      echo 
    $del ."<br>";


    //  Zur Ausführung der DELETE-Anweisung Kommentarzeichen entfernen!!!

      //$delete = mysql_query($del);
     // if(!$delete) {echo mysql_error();}
     //echo mysql_affected_rows(). " Datensätze gelöscht <br>";


    Zuletzt geändert von 123456; 28.12.2005, 17:49.

    Kommentar

    Lädt...
    X