중복 확인 및 데이타 삭제 > 기술자료 | 해피정닷컴

중복 확인 및 데이타 삭제 > 기술자료

본문 바로가기

사이트 내 전체검색

중복 확인 및 데이타 삭제 > 기술자료

MySQL 중복 확인 및 데이타 삭제

페이지 정보


본문

중복데이터가 몇개이상인 것을 검색하고 싶을 때
중복데이터를 추출 할 때 group by having절을 사용해서 검색을 합니다.


1. 중복 확인
select *, count(*) from `테이블` where 조건컬럼='값' group by 컬럼1, 컬럼2, ... 컬럼n having count(*) > 1;
select *, count(*) as cnt from `테이블` where 조건컬럼='값' group by 컬럼1, 컬럼2, ... 컬럼n having count(*) > 1;
select A.* from `테이블` A, (select 컬럼1 from `테이블` where 조건컬럼='값' group by 컬럼1, 컬럼2, ... 컬럼n having count(*) > 1) B where A.컬럼1 = B.컬럼1
select * from `테이블` where 컬럼1 IN ( select 컬럼1 from `테이블` where 조건컬럼='값' group by 컬럼1, 컬럼2, ... 컬럼n having count(*) > 1 );


2. 중복데이터 삭제
id컬럼은 AUTO_INCREMENT 로, 기본 키 값을 증가의 자동 시퀀스를 생성하는 키입니다

2-1. 해당 테이블에 유일값(id) 컬럼이 있는 경우
중복일 경우 id컬럼 값을 이용하여 중복 레코드 중 가장 낮은 값(오래된)을 포함한 레코드를 제거합니다

delete from `테이블` where id컬럼 IN (select * from (select MIN(id컬럼) from `테이블` where 조건컬럼='값' group by 컬럼1, 컬럼2, ... 컬럼n having count(*) > 1) as tmp );


2-2. 해당 테이블에 유일값(id) 컬럼이 없는 경우
# rownum값 초기화
set @rownum:=0;

# rownum값을 이용해 id 컬럼을 만들어서 새로운 테이블 생성
create table `테이블_copy` as select @rownum:=@rownum+1, * from `테이블';

# 위와 동일 
delete from `테이블` where id컬럼 IN (select * from (select MIN(id컬럼) from `테이블` group by 컬럼1, 컬럼2, ... 컬럼n having count(*) > 1) as tmp );

rownum 을 이용해서 id컬럼이 추가된 새로운 테이블을 만들고, 2-1과 동일한 방법으로 중복을 없앨 수 있습니다
delete from `테이블` where 컬럼1 IN ( select A.컬럼1 from ( select 컬럼1 from `테이블` group by 컬럼1, 컬럼2, ... 컬럼n having count(*) > n ) A );


참고자료
https://funyphp.com/archive/mysql/18
https://hyang2data.tistory.com/3
https://jeffrey-oh.tistory.com/321
https://yrohh.tistory.com/395
https://deersoul6662.tistory.com/224

댓글목록

등록된 댓글이 없습니다.


Total 2,639건 4 페이지
  • RSS
기술자료 목록
2579
호스팅   3286  2023-01-12 10:58 ~ 2023-01-12 10:58  
2578
APP   2463  2023-01-11 18:09 ~ 2023-01-11 18:51  
2577
Android   3197  2023-01-11 09:57 ~ 2024-01-31 18:23  
2576
그누보드   3113  2023-01-06 10:36  
2575
Android   3416  2023-01-04 20:45 ~ 2023-05-23 09:05  
2574
Android   4163  2023-01-03 18:43 ~ 2023-05-01 10:57  
2573
그누보드   3008  2022-12-31 09:25 ~ 2024-02-05 13:25  
2572
MySQL   3993  2022-12-28 21:09 ~ 2022-12-29 06:32  
2571
SQL   5059  2022-12-26 10:51 ~ 2022-12-26 11:52  
2570
호스팅   4016  2022-12-16 12:22 ~ 2022-12-26 19:57  
2569
Apple   3778  2022-12-13 21:15  
2568
일반   2989  2022-12-09 12:41 ~ 2022-12-09 12:49  
2567
일반   2997  2022-12-09 10:12 ~ 2022-12-26 18:20  
2566
Apple   2775  2022-12-09 06:07 ~ 2022-12-09 06:22  
2565
일반   2970  2022-12-08 17:05 ~ 2023-06-27 18:12  
2564
JavaScript   5389  2022-12-06 10:30 ~ 2022-12-06 13:11  
2563
MySQL   3112  2022-12-02 15:40 ~ 2022-12-02 15:41  
2562
MySQL   6037  2022-11-22 07:37  
열람
MySQL   3154  2022-11-22 07:34 ~ 2022-12-02 12:14  
2560
MySQL   3124  2022-11-21 12:10 ~ 2022-11-21 12:18  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.