>데이터 베이스 >MySQL 튜토리얼 >sql 删除重复记录

sql 删除重复记录

WBOY
WBOY원래의
2016-06-07 17:47:371063검색

sql 删除重复记录本文章提供了大量的sql 删除重复记录语句,如果你正在愁如何把数据库重复的数据给删除的话,我们为你提供了多种删除重复记录的sql查询语句。

sql 删除重复记录
本文章提供了大量的sql 删除重复记录语句,如果你正在愁如何把重复的数据给删除的话,我们为你提供了多种删除重复记录的sql查询语句。

select a.*
from temp a  inner join (select name,sex from temp group by name,sex having count(*)>1 ) b
on a.name = b.name and a.sex = b.sex

//来看个删除重复记录实例

//user 表结构
create table user(
varchar(20) uname notnull;
varchar(16) upass ;
);


//建立临时表,并复制user表中不重复的数据
create table  user_tmp as select distinct * from user;

drop table user;//删除user表

alert user_tmp rename user;//将user_tmp表重命名为user

//另一种方法

delete  ccs_users
where userid in(
select max(userid) from ccs_users group by userid having count(*)>1)


看来看一人sql删除重复记录实例

例如:
id?name?value
1?a?pp
2?a?pp
3?b?iii
4?b?pp
5?b?pp
6?c?pp
7?c?pp
8?c?iii
id是主键 要求得到这样的结果
id?name?value
1?a?pp
3?b?iii
4?b?pp
6?c?pp
8?c?iii
方法1
delete?yourtable?
where?[id]?not?in?(
select?max([id])?from?yourtable?
group?by?(name?+?value))

方法2
delete?a
from?表?a?left?join(
select?id=min(id)?from?表?group?by?name,value
)b?on?a.id=b.id
where?b.id?is?null

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.