MySQL에서 중복 행(중복 데이터) 삭제
질문:
각 고유 값에 대해 단일 레코드를 유지하면서 MySQL 테이블에서 중복 행을 제거하는 방법은 무엇입니까?
예:
이름 테이블에서 다음 데이터를 고려하세요.
id | name |
---|---|
1 | |
2 | yahoo |
3 | msn |
4 | |
5 | |
6 | yahoo |
해결책:
경고: 항상 먼저 테이블의 테스트 복사본에서 이 작업을 수행하도록 주의하세요.
중복 행을 모두 제거하고(하나는 유지) ID 값이 가장 낮거나 높은 레코드를 유지하려면 다음 쿼리를 사용하세요.
가장 낮은 ID 값 유지:
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id > n2.id AND n1.name = n2.name</code>
가장 높은 ID 값 유지:
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id < n2.id AND n1.name = n2.name</code>
추가 참고 사항:
AND n1.id != n2.id
조건을 추가하세요. <code class="language-sql">INSERT INTO tempTableName(cellId,attributeId,entityRowId,value) SELECT DISTINCT cellId,attributeId,entityRowId,value FROM tableName;</code>
위 내용은 하나의 레코드를 유지하면서 MySQL에서 중복 행을 효율적으로 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!