독창성을 유지하면서 중복 행 제거
질문:
데이터 무결성을 유지하는 것이 중요합니다. 그리고 종종 사용자 제출로 인해 중복된 항목이 발생할 수 있습니다. subscriberEmail과 같은 특정 필드를 기반으로 중복 항목이 존재하는 시나리오에서 목표는 이러한 중복 항목을 제거하고 원래 항목만 유지하는 것입니다. 테이블 교체를 사용하지 않고 이를 효율적으로 달성할 수 있는 방법은 무엇입니까?
답변:
테이블에는 각 행에 대한 고유 식별자가 포함되어 있으므로 간단한 접근 방식을 채택할 수 있습니다.
<code class="sql">delete x from myTable x join myTable z on x.subscriberEmail = z.subscriberEmail where x.id > z.id</code>
설명:
이 쿼리는 고유 ID의 존재를 활용하여 원본 레코드를 식별합니다. subscriberEmail 필드를 사용하여 테이블 자체를 조인하고 ID를 기준으로 필터링함으로써 중복 레코드를 원본보다 높은 ID를 가진 레코드로 효과적으로 태그 지정합니다. 태그가 지정된 중복 항목은 삭제됩니다.
쿼리 성능을 더욱 향상하려면 subscriberEmail 열의 인덱스를 활용하는 것이 좋습니다. 이렇게 하면 이 필드를 기반으로 레코드를 빠르게 검색할 수 있어 쿼리가 더욱 효율적이 됩니다. subscriberEmail 열을 UNIQUE 인덱스 열로 선언하면 향후 중복 항목이 삽입되는 것을 방지하는 데에도 도움이 될 수 있습니다.
위 내용은 테이블의 원래 항목을 유지하면서 중복 행을 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!