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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-12-06 02:06:11637ブラウズ

How Can I Find Missing IDs in a MySQL Table?

MySQL テーブル内で欠落している識別子の特定

MySQL テーブル内では、欠落している識別子が発生し、数値シーケンスにギャップが生じる可能性があります。これらの欠落している ID を取得するには、特定のクエリが必要です。

欠落している ID のクエリ

提供されているテーブルの例を考えてみましょう。

ID Name
1 Bob
4 Adam
6 Someguy

Fromこのテーブルでは、ID 2、3、5 が欠落していることがわかります。これらの欠落している識別子を抽出するには、次のクエリを使用できます。

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);

説明

  • テストテーブルは、隣接する行を比較するために自己結合されています。
  • ID 1 (開始) は、現在の ID の直後にある欠落している可能性のある ID を表します(a.id).
  • MIN(b.id) - 1 (end) は、開始値より大きい最小 ID と 1 の差を表し、欠落している ID 範囲の潜在的な終了を示します。
  • 条件を満たす行が開始
  • MIN(b.id) は、ID が欠落している範囲です。

追加リソース

このトピックの詳細については、次を参照してください。
  • [シーケンスギャップの例コード](https://web.archive.org/web/20220706195255/http://www.codediesel.com/mysql/sequence-gaps-in-mysql/)

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。