기본적으로 중복되지 말아야 하는데.. 중복이 된 경우 그 행을 삭제하는 방법입니다.
DELETE FROM duplicate
WHERE id not in ( SELECT id from ( SELECT id from duplicate group by phone) as id )
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
'DB > MySQL' 카테고리의 다른 글
mysql - DISTINCT 와 GROUP BY의 차이 (1) | 2012.08.20 |
---|---|
mysql - union 연산자 (0) | 2012.08.20 |
mysql - 여러 row를 하나의 컬럼으로 콤마(,)구분하기 (0) | 2012.08.16 |
mysql - 튜닝 정보 및 주의 사항 (0) | 2012.08.09 |
mysql - BLOB, TEXT 데이터 형식 (0) | 2012.08.09 |