2012-07-23 4 views
2

중복 항목이있는 mySQL 테이블이 있습니다 (중복 된 경우가있을 수 있음). id라는 컬럼이 있는데, 이는 중복되는 id와 고유 한 id를 포함 할 수 있습니다. 이름에 고유 한 ID가 포함되어 있음을 나타냅니다. 내가 중복 행mySQL 중복 항목을 제거하는 방법

SELECT id, 
COUNT(id) AS NumOccurrences 
FROM `TABLE 3` 
GROUP BY id 
HAVING (COUNT(id) > 1) 

을 선택할 수 있어요하지만 어떻게 내가 그들 (모든 제외한) 삭제하려면 다음 SQL 문을 사용하여?

답변

2
DELETE t1 FROM test t1, test t2 WHERE t1.unique_id > t2.unique_id AND t1.id = t2.id; 
0

당신은 고유 ID 필드에 UNIQUE INDEX을 추가해야합니다. 이렇게하면 나중에 더 많은 복제물이 누출되지 않습니다.

ALTER IGNORE `TABLE 3` ADD UNIQUE INDEX (`unique_id`); 

IGNORE 비트는 첫 번째 행을 값 "unique_id"로 유지합니다. 또한 열이나 테이블 이름에 공백을 사용하지 마십시오. 이름 주위에 진드기를 사용해야하므로 SQL 오류가 발생하기 쉬워집니다.

관련 문제