MySQL 테이블에서 거의 100 개의 필드가있는 수천 개의 레코드가 있습니다.복제 항목에 데이터가 있지만 원래 항목에는없는 필드를 유지하여 MySQL에서 중복 레코드를 삭제하는 방법은 무엇입니까?
일부 레코드는 중복되어 표시되어 있습니다. 이제는 속임수를 간단하게 삭제할 수 있지만 원래 레코드 버전에는없는 다른 가능한 null이 아닌 다른 데이터를 유지하려고합니다. 희망을 갖게되었습니다. 예를 들어
:
a b c d e f key dupe
--------------------
1 d c f k l 1 x
2 g h j 1
3 i h u u 2
4 u r t 2 x
위의 샘플 테이블은, 원하는 출력은 다음과 같습니다
자세히 살펴보면, 중복 키를 사용하여 결정하고a b c d e f key dupe
--------------------
2 g c h k j 1
3 i r h u u 2
은 (그것이 두 레코드에 대해 동일하므로, 중복 레코드 필드에 'x'가있는 레코드는 중복 레코드의 일부 필드를 유지함으로써 삭제되는 레코드입니다 (예 : 키 1의 c, e 값).
나 이 수수께끼 같은 문제에 대한 자세한 정보가 필요한지 확인하십시오.
감사합니다.
p.s : MySQL을 사용할 수없는 경우 PERL/Python 스크립트 샘플이 멋집니다! 감사!
주어진 키 값에 대해 하나 이상의 중복 레코드가있을 수 있습니까? – BenV
나는 열쇠가 실제로 "열쇠"가 아닐 것이라고 생각한다. (아마 serogate 열쇠가있을 것이다.) – Dani
두 개 이상의 중복은 허용되지 않습니다. 그들은 두 쌍으로 존재합니다. 키는 속임수를 구별하기위한 것입니다. – ThinkCode