Hierarchische Abfragen in MySQL: Abstammung mit Tiefensuche durchqueren
Das Bestimmen von Abstammungsbeziehungen innerhalb hierarchischer Daten ist eine häufige Aufgabe in der Datenbankverwaltung. In MySQL können Sie mit hierarchischen Abfragen effektiv navigieren und Daten aus verschachtelten Strukturen abrufen.
Angenommen, Sie haben eine Tabelle mit dem Namen „mytable“ mit zwei Spalten, „a“ und „b“, die ein hierarchisches Eltern-Kind-System darstellen Beziehung:
| a | b | ---------- | 1 | 2 | | 2 | 3 | | 3 | 4 | | 4 | 5 | | 3 | 6 | | 4 | 7 |
Stellen Sie sich das Szenario vor, in dem Sie alle Vorfahren eines bestimmten Knotens abrufen möchten, beispielsweise alle Eltern, Großeltern usw. des Knotens 5.
Lösung, die den in der Tiefe verwendeten Algorithmus nutzt:
MySQL bietet eine hierarchische Abfragelösung unter Verwendung eines Tiefensuchansatzes (DFS). Hier ist eine Abfrage, die dies erreicht:
SELECT @id := ( SELECT senderid FROM mytable WHERE receiverid = @id ) AS person FROM ( SELECT @id := 5 ) vars STRAIGHT_JOIN mytable WHERE @id IS NOT NULL
Analyse:
Von Wenn Sie diese Abfrage ausführen, erhalten Sie eine Liste der Vorfahren für Knoten 5: 4, 3, 2 und 1. Diese Methode durchläuft effektiv die Hierarchie mithilfe eines DFS-Ansatzes und ermöglicht Ihnen die Navigation durch komplexe Eltern-Kind-Strukturen in Ihrer MySQL-Datenbank.
Das obige ist der detaillierte Inhalt vonWie kann die Tiefensuche von MySQL effektiv alle Vorfahren eines Knotens in einer hierarchischen Struktur abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!