nach Import doppelte Datensätze in DB

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

  • nach Import doppelte Datensätze in DB

    Hallo,

    ich habe Datensätze von einer Excel-Tabelle über Access in die Mysql-DB importiert. Bei den Excel-Tabellen gab es für Vorname und Nachname nur ein Feld, so daß ich nun teilweise doppelte Datensätze habe, der Form

    /Vorname/Nachname /PLZ /Wohnort

    /Dirk /Geiger /74568 /Buxtehude
    / /Dirk Geiger /74568 /


    Die PLZ der importierten Datensätze sind größtenteils korrekt, die Wohnorte nicht. Beim Datenabgleich möchte ich gerne die PLZ und Feld Nachname in der Mysql-DB abgleichen um auf doppelte Datensätze zu prüfen.

    Mit den schon diskutierten Fällen wie
    select * from $tab1 AS one, $tab1 AS two where one.PLZ = two.PLZ and one.Nachname = two.Nachname

    komme ich leider nicht weiter aufgrund des Feldes Nachname.


    Weiß hier vielleicht jemand weiter?

  • #2
    update tabelle set name=replace(replace(name, ' /', '/'), '/ ', '/')

    entfernt Leerzeichen vor und hinter Schrägstrichen. Muss möglicherweise mehrmals hintereinander ausgeführt werden bis affected_rows=0, da jeweils nur ein Leerzeichen entfernt wird.

    Eine Alternative wäre eine Schleife mit PHP und preg_replace:

    PHP-Code:
    $q mysql_query('select distinct name from tabelle');
    for(
    $i=0; list($name)=mysql_fetch_row($q); $i++)
    {
      
    $name_neu preg_replace('%\s*/\s*%''/'$name);
      
    $name mysql_escape_string($name);
      
    $name_neu mysql_escape_string($name_neu);
      
    mysql_query("update tabelle set name='$name_neu' where name='$name'");

    \s steht für alle Leerzeichen, Tabs, Zeilen- und Seitenumbrüche, die im Feld enthalten sind.

    Sicher bietet Excel auch eine Möglichkeit, die Ersetzung vor dem Abgleich zu erledigen!?!
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar

    Lädt...
    X