2016-03-31 11 views
-1

2 veya 3'ten fazla aynı kaydın olduğu bir mysql tablosum var. Tabloda, sütun1, sütun2, sütun3 ve sütun4'e katılarak aynı değerler var, daha sonra bu kayıtlar çift olarak kabul edilir. Ben tablodaki sütunların geri kalanı hakkında umurumda değil ama 4 sütunların üstünde kombinasyonu aynıysa i max (id) arasında bir tek kayıt tutma dakika tüm kayıtları (İd)2 veya 3 aynı kayıttan daha fazlası: Sil 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

bazı örnek verileri –

+0

Yani burada söz – Priyanshu

+0

'site',' sector', 'para1' ve' para2' yinelenen tanımlar kombinasyonunda aktarıldı sağlayın? –

cevap

1

silmek istiyor Örneğin (Bu özel sorun için kesinlikle gerekli olandan daha fazla sorgu)

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; 
İlgili konular