Heim > Datenbank > MySQL-Tutorial > Wie kann man fehlende IDs in einer MySQL-Tabelle effizient identifizieren?

Wie kann man fehlende IDs in einer MySQL-Tabelle effizient identifizieren?

Patricia Arquette
Freigeben: 2024-11-30 10:30:11
Original
205 Leute haben es durchsucht

How to Efficiently Identify Missing IDs in a MySQL Table?

Identifizieren fehlender IDs in einer MySQL-Tabelle

In einer MySQL-Tabelle kann es zu Lücken in der ID-Sequenz kommen, wie z. B. fehlende IDs Werte wie „2, 3 und 5“ im gegebenen Beispiel. Um diese fehlenden IDs effizient abzurufen, kann eine spezielle SQL-Abfrage verwendet werden.

SQL-Abfrage zur Identifizierung fehlender IDs

Die folgende Abfrage ruft alle fehlenden IDs innerhalb eines angegebenen Bereichs ab Lücke:

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)
Nach dem Login kopieren

Abfrageerklärung

Diese Abfrage verwendet zwei Kopien derselben Tabelle, bezeichnet als „a“ und „b“, um eine effiziente Self-Join-Operation durchzuführen.

  • Die WHERE-Klausel stellt sicher, dass Tabelle „a“ IDs kleiner als Tabelle hat „b“, identifiziert potenziell fehlende IDs.
  • Die GROUP BY-Klausel gruppiert die Ergebnisse nach den Start-IDs in „a.“
  • Die HAVING-Klausel prüft, ob die Start-IDs kleiner als die Mindest-ID in „b“ sind, und bestätigt, dass eine Lücke vorhanden ist.
  • Das Ergebnis wählt die Start-ID („Start“) und die End-ID („Ende“) von aus jede Lücke.

Zusätzliche Informationen

Weitere Einblicke zu diesem Thema finden Sie im Folgenden Ressource:

  • [Sequenzlücken in MySQL](https://web.archive.org/web/20220706195255/http://www.codediesel.com/mysql/sequence-gaps-in- mysql/)

Das obige ist der detaillierte Inhalt vonWie kann man fehlende IDs in einer MySQL-Tabelle effizient identifizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage