ホームページ > データベース > mysql チュートリアル > データベース テーブル内で欠落している ID を見つけるにはどうすればよいですか?

データベース テーブル内で欠落している ID を見つけるにはどうすればよいですか?

DDD
リリース: 2025-01-11 11:33:42
オリジナル
549 人が閲覧しました

How Can I Find Missing IDs in a Database Table?

データベーステーブルで欠落している ID を特定する

この記事では、データベース テーブル内で欠落している連続 ID を正確に特定する SQL クエリを示します。このアプローチでは、DISTINCT キーワードを利用して重複エントリを排除し、 1 演算子を利用して一連の潜在的な ID を生成します。この生成されたシーケンスをテーブル内の既存の ID と比較することで、ギャップを効率的に特定します。 このメソッドは、初期 ID が 1 であると仮定し、現在の最大 ID まで検索します。

コアクエリ:

<code class="language-sql">SELECT DISTINCT id + 1
FROM mytable
WHERE id + 1 NOT IN (SELECT DISTINCT id FROM mytable);</code>
ログイン後にコピー

このクエリは、概要を説明した問題に効果的に対処しますが、制限もあります。 現在の最大 ID を超えて作成され、その後削除された欠落 ID は検出されません。

最大 ID パラメーターを使用した拡張クエリ

この制限を克服するために、検索の上限を定義する MaxID パラメーターを導入します。 WHERE 句に対するこの変更により、現在の最大値と MaxID.

の範囲内で欠落している ID を検出できるようになります。
<code class="language-sql">SELECT DISTINCT id + 1
FROM mytable
WHERE id + 1 NOT IN (SELECT DISTINCT id FROM mytable)
  AND id + 1 <= MaxID;</code>
ログイン後にコピー

この改善されたクエリは、現在の最大値までの欠落 ID を検索するだけでなく、より高い範囲から削除された可能性のある ID をカバーするように検索を拡張します。

互換性に関するメモ

提供されたクエリは、MySQL および SQLite データベースで正しく機能することが確認されています。 SQL Server などの他のデータベース システムとの互換性を確保するには、構文の若干の調整が必要になる場合があります。

以上がデータベース テーブル内で欠落している ID を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート