가장 오래된 제출물을 유지하면서 중복 행을 삭제하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-01 05:54:27
원래의
270명이 탐색했습니다.

 How to Delete Duplicate Rows While Keeping the Oldest Submission?

중복 행 관리: 가장 오래된 제출물 보존

중복 데이터는 모든 데이터베이스의 무결성과 유용성에 큰 영향을 미칠 수 있습니다. 이 시나리오의 목표는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!