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 필드
중복필드 : 테이블에 중복되는 필드
※ 백업을 하신 후 진행하세요. 기존 데이터를 작업하기전에 백업을 하신 후 하시거나 테이블를 카피하여 테스트 한 후 진행하시기 바랍니다.