> 데이터 베이스 > MySQL 튜토리얼 > 데이터베이스 테이블에서 누락된 ID를 어떻게 찾을 수 있습니까?

데이터베이스 테이블에서 누락된 ID를 어떻게 찾을 수 있습니까?

DDD
풀어 주다: 2025-01-11 11:33:42
원래의
629명이 탐색했습니다.

How Can I Find Missing IDs in a Database Table?

데이터베이스 테이블에서 누락된 ID 식별

이 문서에서는 데이터베이스 테이블 내에서 누락된 순차 ID를 찾아내는 SQL 쿼리를 보여줍니다. 이 접근 방식은 DISTINCT 키워드를 활용하여 중복 항목을 제거하고 1 연산자를 사용하여 일련의 잠재적 ID를 생성합니다. 이 생성된 시퀀스를 테이블의 기존 ID와 비교하여 간격을 효율적으로 식별합니다. 이 방법은 초기 ID를 1로 가정하고 현재 최대 ID까지 검색합니다.

핵심 쿼리:

SELECT DISTINCT id + 1
FROM mytable
WHERE id + 1 NOT IN (SELECT DISTINCT id FROM mytable);
로그인 후 복사

이 쿼리는 설명된 문제를 효과적으로 해결하지만 제한 사항이 있습니다. 현재 최대 ID를 초과하여 생성되었다가 삭제된 누락된 ID는 감지하지 않습니다.

최대 ID 매개변수로 향상된 쿼리

이러한 한계를 극복하기 위해 검색 상한선을 정의하는 MaxID 매개변수를 도입했습니다. WHERE 절에 대한 이러한 수정을 통해 현재 최대값 및 MaxID 범위 내에서 누락된 ID를 감지할 수 있습니다.

SELECT DISTINCT id + 1
FROM mytable
WHERE id + 1 NOT IN (SELECT DISTINCT id FROM mytable)
  AND id + 1 <= MaxID;
로그인 후 복사

이 향상된 쿼리는 현재 최대값까지 누락된 ID를 찾을 뿐만 아니라 더 높은 범위에서 삭제되었을 수 있는 커버 ID까지 검색을 확장합니다.

호환성 참고

제공된 쿼리는 MySQL 및 SQLite 데이터베이스에서 올바르게 작동하는 것으로 확인되었습니다. SQL Server와 같은 다른 데이터베이스 시스템과의 호환성을 위해 약간의 구문 조정이 필요할 수 있습니다.

위 내용은 데이터베이스 테이블에서 누락된 ID를 어떻게 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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