나는 이것이 쿼리에서도 가능하지는 않겠지 만 여기까지 간다. 제 3 자 시스템에서 데이터를 정리하고 있습니다. 그들은 이름의 첫 3 글자와 yyyymmdd 형식의 dob로 구성된 그룹의 각 사람별로 고유하지 않은 고유 한 문자열을 만듭니다. 중복되는 몇 가지 항목에서 -1, -2, -3 등을 해당 ID에 추가하여 진정으로 고유하게 만듭니다. 위에서 MySQL 중복 레코드 업데이트
JOH19700101 0001 JOHN SMITH 1970-01-01
JOH19700101 0001 JOHNSON SMITH 1970-01-01
JOH19700101 0002 JOHN SMITH 1970-01-01
은 처음 두 개의 아이디 (JOH19700101)을 가질 필요가 -1 -2가 동일한 그룹 (0001)에 있기 때문에 첨부. 3 번째 그룹은 다른 그룹 (0002)과 동일하게 유지 될 수 있습니다.
SELECT x.id, x.uid, x.group, x.name, x.dob
FROM import x
INNER JOIN (
SELECT uid
FROM import
GROUP BY group, uid
HAVING COUNT(uid) > 1) z ON x.uid = z.uid;
처음 두 샘플은 각각 JOH19700101-1 및 JOH19700101-2의 새로운 UID를 얻을 것이다 있도록이에 대한 업데이트를 추가 할 수있는 방법이 있나요 : 중복 선택
쉽게 충분했다?
뭔가 같은 :. http://stackoverflow.com/questions/14998877/row-number-by-several-columns 변수를 사용하여, 다음은 전체 행의 값을 기준으로 업데이 트입니다. – xQbert
업데이트가 반복되면서 append (-1, -2, -3)와 같이 롤링 방식으로 업데이트를 실행 하시겠습니까? 각 고유 ID에 대한 중복 수를 추적하려면 프로 시저가 필요합니다. – SArnab
나는 여기에서 방아쇠를 당길 생각하고있다. 그냥 힌트 – peter