MySQL 중복제거 쿼리

참조 : http://gyuha.tistory.com/309

위 블로그에서 알려주시는 쿼리를 적용하였다.

/* 중복 레코드 조회 */
SELECT 테이블_index, 
       중복필드, 
       count(*) as cnt 
  FROM 테이블  
   GROUP BY 중복필드  
HAVING count(테이블_index)>1; 

/* 중복 레코드 삭제 */
DELETE 
  FROM 테이블  
 WHERE 테이블_index not in (
     SELECT 테이블_index FROM (
           SELECT 테이블_index FROM 테이블 GROUP BY 중복필드
     ) as b
 );

 

하나의 테이블에 특정 레코드가 중복되어 있을 때 중복 레코드를 삭제하도록 하여야 한다.
테이블에 index로 primary key가 있으면 더욱 확실하게 삭제될 것이다.

테이블          : 테이블
테이블_index : primary key 필드
중복필드       : 테이블에 중복되는 필드 

※ 백업을 하신 후 진행하세요. 기존 데이터를 작업하기전에 백업을 하신 후 하시거나 테이블를 카피하여 테스트 한 후 진행하시기 바랍니다.



저작자 표시

'WEBProgram Language > MySQL' 카테고리의 다른 글

MySQL 중복제거 쿼리  (2) 2011/11/07
Trackback 0 Comment 2