Heim > Datenbank > MySQL-Tutorial > Wie kann ich rekursive Abfragen in SQLite3 durchführen?

Wie kann ich rekursive Abfragen in SQLite3 durchführen?

DDD
Freigeben: 2024-12-31 10:57:10
Original
601 Leute haben es durchsucht

How Can I Perform Recursive Queries in SQLite3?

Rekursive Abfragen in SQLite3: Ein umfassender Leitfaden

Während SQLite3 in der Vergangenheit keine Unterstützung für rekursive Abfragen hatte, haben jüngste Fortschritte diese Funktion mit eingeführt Einführung von Common Table Expressions (CTEs) in Version 3.8.3.

Mit rekursiven CTEs (SQLite 3.8.3 oder höher)

SQLite3 bietet jetzt die WITH-Anweisung, die die Definition rekursiver CTEs ermöglicht. Mit einem rekursiven CTE können Sie problemlos rekursive Abfragen durchführen:

WITH RECURSIVE Subparts AS (
    SELECT Part, SuperPart
    FROM Part
    WHERE SuperPart IS NULL
    UNION
    SELECT Part, SuperPart
    FROM Subparts
    JOIN Part
    ON Subparts.SuperPart = Part.Part
)
SELECT *
FROM Subparts;
Nach dem Login kopieren

Rekursive Abfragen in früheren SQLite3-Versionen

Vor Version 3.8.3 wurde SQLite3 nicht unterstützt rekursive Abfragen. Es gibt jedoch eine Problemumgehung, indem die Rekursion im Client-Code implementiert wird:

  1. Anfangsschritt: Rufen Sie die Anfangszeile und die Unterteil-IDs ab.
SELECT Part, SuperPart
FROM Part
WHERE SuperPart IS NULL;
Nach dem Login kopieren
  1. Rekursiver Schritt: Zeilen und rekursiv abrufen Unterteil-IDs für die Unterteile.
SELECT Part, SuperPart
FROM Part
WHERE SuperPart IN (sub-part IDs from previous step);
Nach dem Login kopieren
  1. Stoppbedingung: Setzen Sie die Rekursion fort, bis keine Unterteile mehr gefunden werden.

Das obige ist der detaillierte Inhalt vonWie kann ich rekursive Abfragen in SQLite3 durchführen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage