ホームページ > データベース > mysql チュートリアル > MySQL テーブルで欠落している ID を効率的に特定するにはどうすればよいですか?

MySQL テーブルで欠落している ID を効率的に特定するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-30 10:30:11
オリジナル
216 人が閲覧しました

How to Efficiently Identify Missing IDs in a MySQL Table?

MySQL テーブルで欠落している ID を特定する

MySQL テーブルでは、ID シーケンスに欠落などのギャップがある可能性があります。指定された例では「2、3、5」のような値です。これらの欠落している ID を効率的に取得するには、特定の SQL クエリを使用できます。

欠落している ID を識別するための SQL クエリ

次のクエリは、指定された範囲内のすべての欠落している ID を取得します。ギャップ:

SELECT a.id+1 AS start, MIN(b.id) - 1 AS end
    FROM testtable AS a, testtable AS b
    WHERE a.id < b.id
    GROUP BY a.id
    HAVING start < MIN(b.id)
ログイン後にコピー

クエリ説明

このクエリは、「a」と「b」で示される同じテーブルの 2 つのコピーを利用して、効率的な自己結合操作を実行します。

  • WHERE句は、テーブル "a" がテーブル "b" よりも小さい ID を持つことを保証し、欠落している可能性のある ID を識別します。
  • GROUP BY句は、結果を "a" の開始 ID によってグループ化します。
  • HAVING 句は、開始 ID が "b" の最小 ID より小さいかどうかをチェックし、ギャップがあることを確認します。
  • 結果により、各ギャップの開始 ID ("start") と終了 ID ("end") が選択されます。

追加情報

このトピックの詳細については、次のリソースを参照してください:

  • [シーケンス ギャップMySQL](https://web.archive.org/web/20220706195255/http://www.codediesel.com/mysql/sequence-gaps-in-mysql/)

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

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