超过2或3条相同记录:删除Mysql

超过2或3条相同记录:删除Mysql,mysql,Mysql,我有一个mysql表,其中有2到3条以上相同的记录。 在一张桌子上, 列1、列2、列3和列4上的连接具有相同的值,则这些记录被视为重复。 我不关心表中的其余列,但如果以上4列的组合相同,我想删除所有min(Id)记录,保留一条max(Id)记录 例如(对这个特定问题的查询比严格要求的更多) 在此提供一些示例数据,以便将站点、扇区、para1和para2组合定义为重复?是,正确!!我不关心表中的其他列,但如果以上4列的组合相同,我想删除所有记录的最小值(Id)保持一个记录的最大值(Id)高,请参阅

我有一个mysql表,其中有2到3条以上相同的记录。 在一张桌子上, 列1、列2、列3和列4上的连接具有相同的值,则这些记录被视为重复。 我不关心表中的其余列,但如果以上4列的组合相同,我想删除所有min(Id)记录,保留一条max(Id)记录

例如(对这个特定问题的查询比严格要求的更多)


在此提供一些示例数据,以便将
站点
扇区
para1
para2
组合定义为重复?是,正确!!我不关心表中的其他列,但如果以上4列的组合相同,我想删除所有记录的最小值(Id)保持一个记录的最大值(Id)高,请参阅上面的评论尝试这些解决方案,并让我们知道如果您有任何问题。这相当简单。
  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'
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;