delete from sys_role where code in ( select aaa.codee from ( select code as codee from sys_role group by code having count(code) > 1 ) aaa) and id not in (select bbb.iddd from ( select min(id) as iddd from sys_role group by code having count(code) > 1) bbb) ;