그곰의 생활

[MySQL] 중복제거 쿼리 본문

Server-side/SQL

[MySQL] 중복제거 쿼리

그곰 2011. 11. 7. 16:02

참조 : 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 필드
중복필드       : 테이블에 중복되는 필드 

 

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

 

 

Comments