Kann eine Baumstrukturtabelle in MySQL in einem einzigen Versuch bis zu einer beliebigen Tiefe abgefragt werden?
Es stellt sich die Frage, ob dies machbar ist Durchlaufen Sie eine baumstrukturierte Tabelle in MySQL und rufen Sie alle Nachkommen oder Vorfahren, unabhängig von der Tiefe, auf einmal ab Anfrage.
Antworten
Ja, das ist möglich. Eine modifizierte Preorder Tree Traversal-Technik, wie sie in Joe Celkos „Trees and Hierarchies in SQL for Smarties“ beschrieben wird, ermöglicht dies. Hier ist ein Ausschnitt aus dem Referenzmaterial:
SELECT * FROM tree ORDER BY FIELD(`left`, @field_list_all, @field_list_current, @field_list_children) LIMIT 1
Diese Abfrage verwendet eine „Feldliste“, die als Variable (@field_list_all) gespeichert ist, um die Durchquerung zu verfolgen und Knoten zu identifizieren, die effizient verarbeitet werden sollen. Ein umfassendes Beispiel finden Sie in der angegebenen Dokumentation.
Das obige ist der detaillierte Inhalt vonKann MySQL eine Baumstrukturtabelle in einer Abfrage auf jede beliebige Tiefe abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!