Problem:
Angenommen, Sie haben eine Stücklistentabelle mit Elemente und ihre übergeordneten IDs. Ziel ist es, eine hierarchische Darstellung der Elemente in Form einer Baumstruktur abzurufen. Die Verwendung einer typischen einstufigen Abfrage oder einer rekursiven Funktion kann ineffizient sein.
Lösung:
Die SQL-Sprache in MySQL unterstützt rekursive Abfragen nicht nativ. Um diese Einschränkung zu überwinden, können benutzerdefinierte gespeicherte Prozeduren (SPs) erstellt werden, um die Baumdurchquerungsfunktionalität zu erreichen.
Vorgeschlagene SPs:
Die folgenden SPs können zum Durchlaufen des Baums verwendet werden Stücklistenbaum:
Verwendung:
Um die SPs zu verwenden, folgen Sie diesen Schritten:
Beispiel:
Zum Beispiel, wenn Sie eine Stückliste haben Tabelle mit den folgenden Daten:
+----+------+ | item | parent | +----+------+ | 1 | 0 | | 2 | 1 | | 3 | 1 | | 4 | 3 | | 76 | 3 | +----+------+
Der Aufruf von GetFamilyTree(1) gibt die folgende Hierarchie zurück Darstellung:
[ { "item": 1, "children": [ { "item": 2, "children": [] }, { "item": 3, "children": [ { "item": 4, "children": [] }, { "item": 76, "children": [] } ] } ] } ]
Diese Darstellung stellt alle untergeordneten Zweige im Baum bereit und ermöglicht so ein effizientes Abrufen von Elementbeziehungen.
Das obige ist der detaillierte Inhalt vonWie können gespeicherte Prozeduren einen hierarchischen Stücklistenbaum in MySQL effizient durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!