ホームページ >データベース >mysql チュートリアル >MySQL の自動インクリメント列で欠落している連番を見つける方法
このクエリでは、重複はありませんでしたが、投稿者はテーブルの自動インクリメント列で欠損値を検出しました。この問題の目的は、ID 71 ~ 82 など、連続していない可能性がある欠落している数値の値を特定して返すことです。
より良い解決策
JustPlainMJS は、パフォーマンスを大幅に向上させる代替手段を提供します。
効率の低いソリューション
任意のサイズのテーブルについては、次のアプローチを検討してください:
<code class="language-sql">SELECT (t1.id + 1) as gap_starts_at, ( SELECT MIN(t3.id) -1 FROM arrc_vouchers t3 WHERE t3.id > t1.id ) as gap_ends_at FROM arrc_vouchers t1 WHERE NOT EXISTS ( SELECT t2.id FROM arrc_vouchers t2 WHERE t2.id = t1.id + 1 ) HAVING gap_ends_at IS NOT NULL</code>
このクエリ内:
gap_starts_at
は、現在のギャップの最初の ID を表します。 gap_ends_at
は、現在のギャップの最後の ID を表します。 以上がMySQL の自動インクリメント列で欠落している連番を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。