2016-03-31 19 views
-1

Ich habe eine MySQL-Tabelle, wo ich mehr als 2 oder 3 identische Datensätze habe. In einer Tabelle, Beitritt zu Spalte1, Spalte2, Spalte3 und Spalte4 haben identische Werte dann diese Datensätze gelten als doppelt. ich nicht über den Rest der Spalten in der Tabelle kümmern, aber wenn die Kombination von über 4 Spalten identisch ist möchte ich alle Datensätze für min (Id) einzelne Datensatz halten einen von max (id) löschenMehr als 2 oder 3 identische Datensätze: Löschen Mysql

id,  site,  sector,  para1,  para2 
'652', 'LCUE1015', '1',   '2275',  '0' 
'166994', 'LCUE1015', '1',   '2275',  '0' 
'5343', 'LCUE1015', '1',   '2275',  '0' 
'166003', 'LCUE1015', '1',   '2275',  '0' 
'76351', 'LCUE1015', '1',   '2275',  '0' 
'77342', 'LCUE1015', '1',   '2275',  '0' 
+0

einige Beispieldaten Geben Sie –

+0

aded in Frage – Priyanshu

+0

Also hier Kombination von 'site',' sector', 'para1' und' para2' definiert ein Duplikat? –

Antwort

1

Z.B (Weitere Abfrage als unbedingt notwendig für dieses spezielle Problem)

DELETE x 
    FROM my_table x 
    LEFT 
    JOIN 
    (SELECT site 
      , sector 
      , para1 
      , para2 
      , MAX(id) id 
     FROM my_table 
     GROUP 
      BY site 
      , sector 
      , para1 
      , para2 
    ) y 
    ON y.site = x.site 
    AND y.sector = x.sector 
    AND y.para1 = x.para1 
    AND y.para2 = x.para2 
    AND y.id = x.id 
WHERE y.id IS NULL; 
Verwandte Themen