2014-09-16 2 views
0

테이블에서 중복 레코드를 삭제하고 싶습니다. 테이블에 기본 키 (ID)가 없으므로 like this 대답은 적합하지 않습니다. 여기 mysql 테이블에서 중복 레코드를 삭제하는 방법

내 시도입니다 :

DELETE FROM afscp_permit 
USING afscp_permit, afscp_permit AS vtable 
WHERE (NOT afscp_permit.field_name=vtable.field_name) 
AND (afscp_permit.field_name=vtable.field_name) 
+0

특정 열 또는 전체 행을 기준으로 중복을 삭제 하시겠습니까? – Bala

+0

그리고 무엇이 잘못 되었나요 ... 어떻게됩니까? –

+0

필드 이름이라 불리는 단일 열의 중복 값입니다. alreday가 존재하고 그 행을 삭제하면 – chaya

답변

0

당신의 DBMS에는 버그가없는 경우 도움이 될 수 있습니다 다음과 제약 조건이 방법으로되지 않습니다 :

ALTER IGNORE TABLE afscp_permit ADD UNIQUE INDEX field_name_index (field_name); 
0

방법으로 임시 테이블을 만드는 방법에 대한 같은 열 및 행 :

INSERT INTO temp SELECT DISTINCT * FROM afscp_permit; 
DELETE FROM afscp_permit; 
INSERT INTO afscp_permit SELECT * FROM temp; 
DROP TABLE temp; 
관련 문제