티스토리 뷰

DBMS

mysql - 중복 레코드 지우기

Dev.Luv 2016. 10. 23. 11:00

본적으로 중복되지 말아야 하는데.. 중복이 된 경우 그 행을 삭제하는 방법입니다.

DELETE FROM duplicate
WHERE id not in ( SELECT id from ( SELECT id from 
duplicate group by phone) as id )


전화번호가 중복 된 것이 있을 경우, 위와 같이 WHERE NOT IN을 사용해서 제거해 줄 수 있습니다.


출처 - http://gyuha.tistory.com/309




/* 중복 레코드 조회 */
SELECT 테이블_index, 
       중복필드, 
       count(*) as cnt 
  FROM 테이블  
   GROUP BY 중복필드  
HAVING count(테이블_index)>1; 
 
/* 중복 레코드 삭제 */
DELETE 
  FROM 테이블  
 WHERE 테이블_PK not in (
     SELECT 테이블_PK  FROM (
           SELECT 테이블_PK FROM 테이블 GROUP BY 중복필드
     as b
 );


출처 - http://rexraio.tistory.com/46

댓글