2010-12-10 13 views
4

Ich muss alle Zeilen in meiner Tabelle finden, in denen die Zeichenfolgen eines bestimmten Felds an zwei oder mehr Stellen Duplikate sind.Doppelte Zeichenfolgen in der Datenbank finden

Kann das in einer MySQL-Anweisung getan werden?

EDIT

ich brauche sind jede Zeile nicht nur zählen, wie viele Duplikate dort zu erhalten. Ich möchte die Felder bearbeiten können.

Antwort

7

Ja, versuchen Sie so etwas wie dieses:

SELECT * 
FROM `YourTable` 
WHERE `YourColumn` IN (
    SELECT `YourColumn` 
    FROM `YourTable` 
    GROUP BY `YourColumn` 
    HAVING COUNT(*) > 1 
) 
+0

Ihre Abfrage friert mein PHPmyadmin ein. Vielleicht liegt es daran, dass ich +7000 Zeilen habe – Cudos

+0

Das ist seltsam. Funktioniert gut für mich auf großen Tischen. Vielleicht verursacht eine andere Abfrage Sperrprobleme? –

+0

Hmmm ... Ich werde versuchen, irgendwelche Probleme in meinem Setup zu überprüfen. – Cudos

5

Ja, GROUP BY und HAVING verwenden.

SELECT mycolumn, count(*) FROM mytable 
group by mycolumn 
having count(*) > 1 
+0

Ich muss jede Zeile angezeigt haben. Nicht nur der Graf. Ich möchte die Zeile bearbeiten können. – Cudos

+0

@Cudos können Sie andere Felder zu SELECT hinzufügen, so dass Sie jedes Feld, das Sie benötigen, holen können. Zum Beispiel: SELECT ID, Feld1, Feld2, Mycolumn, Anzahl (\ *) FROM Mistable Gruppe von MyColumn mit count (*)> 1 – St0rM

Verwandte Themen