> 데이터 베이스 > MySQL 튜토리얼 > mysql 데이터베이스에서 중복된 데이터를 제거하는 방법

mysql 데이터베이스에서 중복된 데이터를 제거하는 방법

coldplay.xixi
풀어 주다: 2020-09-29 15:19:36
원래의
6467명이 탐색했습니다.

mysql 데이터베이스에서 중복 데이터를 제거하는 방법: 1. 삭제해야 하는 레코드를 쿼리하면 하나의 레코드가 유지됩니다. 2. 중복 레코드를 삭제하면 하나의 레코드만 유지됩니다. test1 a에서, (...) test1 c에서 입찰로, 여기서..].

mysql 데이터베이스에서 중복된 데이터를 제거하는 방법

mysql 데이터베이스에서 중복 데이터를 제거하는 방법:

1 삭제해야 할 레코드를 쿼리하면 레코드가 유지됩니다.

select a.id,a.subject,a.RECEIVER from test1 a left join (select c.subject,c.RECEIVER ,max(c.id) as bid from test1 c where status=0 GROUP BY RECEIVER,SUBJECT having count(1) >1) b on a.id< b.bid where a.subject=b.subject and a.RECEIVER = b.RECEIVER and a.id < b.bid
로그인 후 복사

2. 중복된 기록을 삭제하고 하나의 기록만 보관하세요. subject,RECEIVER는 색인을 생성해야 합니다. 그렇지 않으면 속도가 매우 느려집니다.

delete a from test1 a, (select c.subject,c.RECEIVER ,max(c.id) as bid from test1 c where status=0 GROUP BY RECEIVER,SUBJECT having count(1) >1) b where a.subject=b.subject and a.RECEIVER = b.RECEIVER and a.id < b.bid;
로그인 후 복사

3. 테이블에서 중복된 기록을 찾습니다.

select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
로그인 후 복사

4. 테이블에서 중복된 기록을 삭제합니다. ).rowid가 가장 작은 레코드만 보관하세요

delete from people where peopleId in (select peopleId from people group by peopleId  having count(peopleId) > 1) and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
로그인 후 복사

5. 테이블에서 중복된 레코드(여러 필드)를 삭제하고 rowid가 가장 작은 레코드만 남겨두고

delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
로그인 후 복사

게으르게 사용하시면 될 것 같습니다. 이 일을 완료하기 위한 명령이 명확하지 않은 것 같습니다. 아니면 먼저 임시 테이블을 생성하고 복사한 다음 임시 테이블의 데이터를 비교하고 해당 데이터를 삭제하는 것이 좋습니다. 메인 테이블

alter table tableName add autoID int auto_increment not null; 
 
create table tmp select min(autoID) as autoID from tableName group by Name,Address; 
 
create table tmp2 select tableName.* from tableName,tmp where tableName.autoID = tmp.autoID; 
 
drop table tableName; 
 
rename table tmp2 to tableName;
로그인 후 복사

더 많은 관련 무료 학습 권장사항:mysql tutorial (동영상)

위 내용은 mysql 데이터베이스에서 중복된 데이터를 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿