偶尔和同事聊到这个问题就顺便写了下代码,供大家参考~
//数据准备
drop table t_user; create table t_user( id int(5) not null auto_increment, username varchar(10), age int(3), primary key(id) ); insert into t_user(username,age) values('aaa',20); insert into t_user(username,age) values('aaa',20); insert into t_user(username,age) values('aaa',20); insert into t_user(username,age) values('bbb',20); insert into t_user(username,age) values('bbb',20); insert into t_user(username,age) values('ccc',20); insert into t_user(username,age) values('ccc',20); insert into t_user(username,age) values('ddd',20); insert into t_user(username,age) values('ddd',20);
删除语句:
DELETE t FROM t_user t, ( SELECT min(id)AS ttid, username FROM t_user t2 GROUP BY t2.username )AS tt WHERE t.id > tt.ttid and t.username = tt.username;