mysql deletes duplicate records for a field in a table

  • 2020-05-06 11:47:53
  • OfStack

For example, table: event (id int (10) auto_increment primary key,
                      sid int (10) not null,
                        detail text)

I want to delete the duplicate record of sid in event. Is there such statement SQL? Or some other way?


delete from event as e  
where id != (select min(id) from event where sid=e.sid); 

or  

delete from event  
where sid not in (select mid from (select sid ,min(id) as mid from event group by sid)) 

Should be useful code

alter ignore table event add unique index idu_sid (sid); 
alter table event drop index idu_sid; 


Related articles: