nick: Doubletten Abgleich

Hallo liebes Forum,

ich möchte meine Stammdatenbank mit neuen Daten abgleichen um Doubletten auszusortieren und dann die gefilterten Daten der Stammdatenbank hinzufügen.

Ich nutze Mysql und php.

Habt ihr da ein paar Vorschläge für mich wie ich am besten vorgehen sollte?

mbg

Nick

  1. ich möchte meine Stammdatenbank mit neuen Daten abgleichen um Doubletten auszusortieren und dann die gefilterten Daten der Stammdatenbank hinzufügen.

    Ich nutze Mysql und php.

    Habt ihr da ein paar Vorschläge für mich wie ich am besten vorgehen sollte?

    Suchmaschien deiner Wahl: "dublettensuche mysql php"

    Das ist ein Problem, dass es dutzenfach gibt - in erster linie musst du aber definieren, was eine Dublette ist.

    Das hier
    1 | Karl-Heinz | Mustermann | Musterstraße | 123 | ... | 19. Februar 1974
    2 | Karl Heinz | Mustermann | Musterstraße | 123 | ... | 19. Februar 1974

    Oder vielleicht das hier:
    1 | Karl Heinz | Mustermann | Musterstraße | 123 | ... | 19. Februar 1974
    2 | Karl Heinz | Mustermann | Musterstraße | 123 | ... | 19. Februar 1947

    1. Der Doublettenabgleich soll zunächst nur die Telefonnummer abgleichen.

      mbg

      Nick

      ich möchte meine Stammdatenbank mit neuen Daten abgleichen um Doubletten auszusortieren und dann die gefilterten Daten der Stammdatenbank hinzufügen.

      Ich nutze Mysql und php.

      Habt ihr da ein paar Vorschläge für mich wie ich am besten vorgehen sollte?

      Suchmaschien deiner Wahl: "dublettensuche mysql php"

      Das ist ein Problem, dass es dutzenfach gibt - in erster linie musst du aber definieren, was eine Dublette ist.

      Das hier
      1 | Karl-Heinz | Mustermann | Musterstraße | 123 | ... | 19. Februar 1974
      2 | Karl Heinz | Mustermann | Musterstraße | 123 | ... | 19. Februar 1974

      Oder vielleicht das hier:
      1 | Karl Heinz | Mustermann | Musterstraße | 123 | ... | 19. Februar 1974
      2 | Karl Heinz | Mustermann | Musterstraße | 123 | ... | 19. Februar 1947

      1. Der Doublettenabgleich soll zunächst nur die Telefonnummer abgleichen.

        Ungetestet etwas wie:

          
        SELECT  
            *  
        FROM  
            nutzer  
        WHERE  
            (telefonnummer) IN (  
            SELECT  
                COUNT(*) AS anzTel, telefonnummer  
            FROM  
                nutzer  
            GROUP BY  
                telefonnummer  
            WHERE  
                anzTel > 1  
            );  
        
        
      2. Hallo,

        Der Doublettenabgleich soll zunächst nur die Telefonnummer abgleichen.

        viel Spass. Du solltest an eine Normalisierung der Telefonnummern für den Abgleich denken - und überlegen, in welchem Format Du diese speicherst.

        Freundliche Grüße

        Vinzenz

      3. Der Doublettenabgleich soll zunächst nur die Telefonnummer abgleichen.

        Das hört sich nach "defective by design" an, es ist nicht ungewöhnlich, dass sich mehrere Menschen dieselbe Telefonnummer teilen.

        Oder aber man hat verschiedene schreibweise für dieselbe Telefonnummer - außer du gehörst zu den glücklichen und hast sie in einem standardisierten Format (z.B. E.123 oder E.164) vorliegen.

        1. sind standardisierte Mobílfunknummern ohne null beginnend.

          Der Doublettenabgleich soll zunächst nur die Telefonnummer abgleichen.

          Das hört sich nach "defective by design" an, es ist nicht ungewöhnlich, dass sich mehrere Menschen dieselbe Telefonnummer teilen.

          Oder aber man hat verschiedene schreibweise für dieselbe Telefonnummer - außer du gehörst zu den glücklichen und hast sie in einem standardisierten Format (z.B. E.123 oder E.164) vorliegen.

          1. Hallo,

            sind standardisierte Mobílfunknummern ohne null beginnend.

            bitte zitiere sinnvoll und verzichte auf TOFU.

            Wenn Du in Deiner Zieltabelle keine Rufnummer doppelt haben willst, dann ist das ganz einfach: die Spalte erhält einen eindeutigen Index und ein INSERT-Versuch einer bereits vorhandenen Rufnummer erzeugt eine Fehlermeldung des DBMS, die die Schlüsselverletzung anzeigt. Mit dieser Fehlermeldung rechnest Du und reagierst angemessen darauf, so wie es Deine (uns unbekannte) Anwendung erfordert.

            Ein vorhergehender "Prüflauf" ist ein Programmierfehler, da dieser ein TOCTTOU-Problem einbaut.

            Freundliche Grüße

            Vinzenz