중복 행 관리: 가장 오래된 제출물 보존
중복 데이터는 모든 데이터베이스의 무결성과 유용성에 큰 영향을 미칠 수 있습니다. 이 시나리오의 목표는 subscriberEmail 필드를 기반으로 중복 행을 제거하고 원래 제출 내용만 유지하는 것입니다.
테이블 교환 기술을 사용하지 않고 이를 달성하려면 다음 SQL 쿼리를 사용할 수 있습니다.
delete x from myTable x join myTable z on x.subscriberEmail = z.subscriberEmail where x.id > z.id
이 쿼리는 테이블 별칭 기능을 사용합니다. myTable 테이블에 대한 별칭 x 및 z를 생성하면 동일한 테이블 내의 행을 비교할 수 있습니다. 특히 subscriberEmail 필드에서 x와 z를 결합하여 효과적으로 자체 결합을 생성합니다.
where 절은 중요한 필터링을 수행합니다. id 필드가 z의 해당 id 필드보다 큰 x의 레코드를 제거합니다. 이렇게 하면 원본이 아닌(중복) 제출물만 삭제 대상이 됩니다.
성능을 더욱 향상하려면 subscriberEmail 열에 UNIQUE 인덱스를 구현하는 것이 좋습니다. 이렇게 하면 앞으로 중복 항목이 테이블에 삽입되는 것을 자동으로 방지할 수 있습니다.
이 쿼리를 구현하면 중복 행을 효율적으로 제거하고 복잡한 테이블 조작이나 작업 없이 각 이메일 주소에 대해 가장 오래된 제출 내용을 보존할 수 있습니다. 데이터 셔플링 절차.
위 내용은 가장 오래된 제출물을 유지하면서 중복 행을 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!