面试常考的一道题:一句sql删除表里的重复数据。
偶尔和同事聊到这个问题就顺便写了下代码,供大家参考~
//数据准备
删除语句:
偶尔和同事聊到这个问题就顺便写了下代码,供大家参考~
//数据准备
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;
本文介绍了一种使用SQL语句来删除数据库表中重复记录的方法。通过一个具体的例子展示了如何构造SQL语句,确保只保留每组唯一的数据项。

被折叠的 条评论
为什么被折叠?



