2009-03-10 12 views
2

Ich habe eine MySQL-Tabelle mit mehreren Feldern, und ich würde gerne alle Einträge suchen, die ein Tupel duplizieren.MySQL - doppelte Tupel finden

dachte ich anfangs konnte ich diese

select f1, f2, f3 from mytable t1 left join mytable t2 
where t1.f1 = t2.f1 and t1.f2 = t2.f2 and t1.f3 = t2.f3; 

tun, aber dann merkte ich, das wird alles nur gibt die Zeilen in der Tabelle (glaube ich).

Ich baute einen Index auf dem Tupel. Mein Tisch hat 1,2 Millionen Zeilen, wenn das einen Unterschied macht.

Mein SQL ist nicht sehr stark. Hilfe geschätzt.

Antwort

3

Vielleicht so etwas wie dieses:

select f1, f2, f3, count(*) 
from mytable 
group by f1, f2, f3 
having count(*) > 1 

Ich benutze MS SQL, so dass die Syntax off sein könnte.