Duplikate in MySQL ausgeben

maceo

Mitglied
Hallo zusammen,

habe mich gerade hier angemeldet, weil ich nicht mehr weiter weiß... :(
Es geht um eine ziemlich große Datenbank mit mehreren Tabellen. In
einer Tabelle werden Bilddaten gespeichert. Da diese DB schon lange
existiert und von mehreren Leuten benutzt wird, gibt es diverse dopplete
Einträge - und genau die gilt es zu finden. Ich habe eine Prüfsumme und
die Anzahl der Bytes (Bildgröße) mit abgelegt. Anhand dessen kann man
die Dopplungen finden... aber wie?

Kann mir jemand sagen, wie ich die doppelten Einträge herausfiltern
kann (nicht löschen, nur anzeigen)? Benutzt wird PHP und MySQL.

maceo
 
Hallo!

Siehe:

Code:
create table tblDoppelt(id int,bytes int);

insert into tblDoppelt values ( 1,132763);
insert into tblDoppelt values ( 2,132765);
insert into tblDoppelt values ( 1,324761);
insert into tblDoppelt values ( 1,13432243);
insert into tblDoppelt values ( 1,132123);
insert into tblDoppelt values ( 1,13432243);
insert into tblDoppelt values ( 1,132763);

mysql> select * from tblDoppelt;
+------+----------+
| id   | bytes    |
+------+----------+
|    1 |   132763 |
|    2 |   132765 |
|    1 |   324761 |
|    1 | 13432243 |
|    1 |   132123 |
|    1 | 13432243 |
|    1 |   132763 |
+------+----------+
7 rows in set (0.03 sec)

Nun die doppelten finden:

mysql> select * from tblDoppelt group by(bytes) having count(id) > 1;
+------+----------+
| id   | bytes    |
+------+----------+
|    1 |   132763 |
|    1 | 13432243 |
+------+----------+
2 rows in set (0.00 sec)

HTH
Gruß Tom
 
Hi Tom,

vielen Dank für deine Antwort. Leider ist es nicht ganz so einfach.
Ich habe mehrere verschiedene doppelte Einträge in der Tabelle
und muss diese irgendwie filtern. Daher kann ich auch nicht so
wie du vorgeschlagen hast drauf zugreifen - leider. Arbeite zur Zeit
an einem Ansatz und kann den (wenn es klappt) ja mal posten.

SELECT * FROM picture AS pic1, picture AS pic2 WHERE pic1.crc32=pic2.crc32 (...)
Für solche Abfragen ist die Tabelle leider zu groß. Ok, werd es
weiter probieren.

maceo
 
Zurück