> 데이터 베이스 > MySQL 튜토리얼 > SQLite 데이터베이스에서 중복 행을 효율적으로 삭제하는 방법은 무엇입니까?

SQLite 데이터베이스에서 중복 행을 효율적으로 삭제하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-05 16:01:46
원래의
536명이 탐색했습니다.

How to Efficiently Delete Duplicate Rows in an SQLite Database?

SQLite 데이터베이스에서 중복 행 식별 및 제거

데이터베이스 레코드 내 중복이 발생할 수 있으며, 이는 데이터 무결성을 유지하고 성능을 최적화할 때 문제가 될 수 있습니다. 이 시나리오에는 'hash'(텍스트)와 'd'(실수)라는 두 개의 열이 있는 대형 SQLite3 테이블이 포함됩니다. 여기서 일부 행은 두 열 모두에 대해 중복 값을 나타냅니다. 목표는 고유한 행을 유지하면서 이러한 중복 행을 효율적으로 삭제하는 것입니다.

제공된 솔루션은 SQLite의 고유한 rowid 열을 활용하여 행을 구분합니다. 아래 쿼리는 'hash' 및 'd' 값의 각 고유 조합에 대해 가장 낮은 rowid 값을 유지하여 중복 행을 대상으로 하고 제거합니다.

delete   from YourTable
where    rowid not in
         (
         select  min(rowid)
         from    YourTable
         group by
                 hash
         ,       d
         )
로그인 후 복사

이 쿼리는 먼저 각 고유 조합에 대한 최소 rowid를 식별하여 작동합니다. 하위 쿼리를 통해 'hash' 및 'd' 값을 검색합니다. 'min(rowid)' 함수는 동일한 'hash' 및 'd' 쌍의 각 그룹에 대해 가장 낮은 rowid를 추출합니다. 그 후, 기본 쿼리는 'rowid not in' 절을 활용하여 rowid가 해당 'hash' 및 'd' 값의 최소 rowid와 일치하지 않는 행을 삭제합니다.

이 접근 방식을 활용하여 쿼리는 테이블 내에서 고유한 데이터를 유지하면서 중복 행을 효율적으로 식별하고 제거합니다. rowid 열을 고유 식별자로 활용하면 신속하고 효과적인 삭제 프로세스가 촉진되어 데이터 정확성이 보장되고 향후 작업을 위한 데이터베이스 성능이 최적화됩니다.

위 내용은 SQLite 데이터베이스에서 중복 행을 효율적으로 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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