Daniel82: MySQL - Doppelte einträge prüfen

Hallo,

ich will eine Spalte nach doppelten Einträgen prüfen. Wenn sie doppelt oder mehrfach ist, soll er mir den Wert anzeigen!

Ich habe gelesen "DISTINCT" löscht die Werte. Stimmt das oder ist "DISTINCT" meine Lösung?

  1. Hi,

    Ich habe gelesen "DISTINCT" löscht die Werte. Stimmt das oder ist "DISTINCT" meine Lösung?

    DISTINCT liefert Dir jeden Wert (bzw. jede Wertkombination) nur ein Mal. Du suchst die HAVING-Klausel.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Ich habe gelesen "DISTINCT" löscht die Werte. Stimmt das oder ist "DISTINCT" meine Lösung?

      DISTINCT liefert Dir jeden Wert (bzw. jede Wertkombination) nur ein Mal. Du suchst die HAVING-Klausel.

      Cheatah

      Beispiel:

      Feld: Name

      Daniel
      Thomas
      Werner
      Daniel
      Berndt

      SELECT name FROM tab HAVING name

      Ausgabe: Daniel

      ???

      1. hi,

        Beispiel:

        Du wurdest bereits hinreichend verstanden.

        ???

        Wenn du die Antwort noch nicht hinreichend verstanden hast, dann informiere dich über genannte Stichworte.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Hi,

        SELECT name FROM tab HAVING name

        hast Du _das_ aus der Dokumentation Deines DBMS erfahren?

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          SELECT name FROM tab HAVING name

          hast Du _das_ aus der Dokumentation Deines DBMS erfahren?

          Cheatah

          Nein, das habe ich mir selbst einfallen lassen. Scheint aber wohl nicht richtig zu sein!?

          1. Hallo Daniel,

            SELECT name FROM tab HAVING name

            hast Du _das_ aus der Dokumentation Deines DBMS erfahren?
            Nein, das habe ich mir selbst einfallen lassen. Scheint aber wohl nicht richtig zu sein!?

            könntest Du mir bitte erklären, warum ich Dir die Dokumentation verlinkt habe?
            Warum ich Dir einen Thread verlinkt habe, in dem Du Dir Syntaxanschauungsunterricht nehmen kannst?

            Freundliche Grüße

            Vinzenz

          2. Hi,

            Nein, das habe ich mir selbst einfallen lassen. Scheint aber wohl nicht richtig zu sein!?

            bitte nicht raten. Ganz besonders nicht, wenn Du auf etwas stößt, das Du noch nicht kennst. Immer _erst_ nachlesen.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo

    ich will eine Spalte nach doppelten Einträgen prüfen. Wenn sie doppelt oder mehrfach ist, soll er mir den Wert anzeigen!

    Du benötigst die Aggregatsfunktion COUNT(), die eine GROUP BY-Klausel erforderlich macht, anschließend schränkst Du mit HAVING - wie bereits von Cheatah erwähnt - das Ergebnis auf die von Dir gewünschten Werte ein.

    Ich habe gelesen "DISTINCT" löscht die Werte. Stimmt das

    Nein, das stimmt nicht.

    oder ist "DISTINCT" meine Lösung?

    Wofür?

    Wenn Du keine doppelten oder gar mehrfachen Datensätze haben möchtest - dann sorge in erster Linie dafür, dass keine entstehen. Ein eindeutiger Index kann Dir dabei helfen. Was willst Du überhaupt mit den ganzen IP-Adressen (ich gehe davon aus, es geht um Dein Problem aus einem etwas älteren Thread) anfangen? Speichere einen Zeitstempel (TIMESTAMP) dazu und wirf weg, was ein bestimmtes Alter überschreitet (DELETE).

    Freundliche Grüße

    Vinzenz

    1. Wenn Du keine doppelten oder gar mehrfachen Datensätze haben möchtest - dann sorge in erster Linie dafür, dass keine entstehen. Ein eindeutiger Index kann Dir dabei helfen. Was willst Du überhaupt mit den ganzen IP-Adressen (ich gehe davon aus, es geht um Dein Problem aus einem etwas älteren Thread) anfangen? Speichere einen Zeitstempel (TIMESTAMP) dazu und wirf weg, was ein bestimmtes Alter überschreitet (DELETE).

      Ja, ich will die IP-Adresse prüfen, ob die doppelt vorkommt. Löschen will ich dabei NICHTS!!!

      1. Hallo

        Ja, ich will die IP-Adresse prüfen, ob die doppelt vorkommt. Löschen will ich dabei NICHTS!!!

        Schau Dir den Thread von nerodrom an, schau Dir sein Ausgangsposting an, schau Dir den (dort nicht zielführenden, aber für Dich interessanten) Beitrag von Hans an. Statt SUM ist für Dich - wie bereits erwähnt - COUNT die richtige Funktion und das Kriterium in der HAVING-Klausel solltest Du selbst hinbekommen.

        Freundliche Grüße

        Vinzenz

  3. yo,

    falls du mit den links n icht weiter gekommen bist, greif ich mal dein beispiel auf:

    SELECT name, COUNT(*) AS Anzahl
    FROM tab
    GROUP BY name
    HAVING COUNT(*) > 1

    Ilja