Abrufen von Unterverzeichnissen in einer einzelnen Abfrage mit MySQL-Rekursion
Stellen Sie sich eine Tabelle vor, die einer Verzeichnisstruktur ähnelt:
folders_table ----------------------- - INT id_folder - INT id_folder_parent - VARCHAR folder_name
Die Herausforderung besteht darin, alle Unterverzeichnisse eines bestimmten Verzeichnisses mit einem einzigen SELECT abzurufen Abfrage.
Lösung:
Herkömmliche Datenbankstrukturen können diese Abfrage nicht effizient unterstützen. Um es zu aktivieren, muss die Datenbankstruktur geändert werden. Konkret wird eine selbstreferenzierende Beziehung eingeführt, um die Hierarchie darzustellen.
Schritt-für-Schritt-Anleitung:
Sobald die Änderungen abgeschlossen sind, kann die folgende Abfrage verwendet werden, um eine abzurufen Baum beliebiger Tiefe in einer Abfrage:
SELECT * FROM folders_table WHERE left_index > (SELECT left_index FROM folders_table WHERE id_folder = <parent_folder_id>) AND right_index < (SELECT right_index FROM folders_table WHERE id_folder = <parent_folder_id>) ORDER BY left_index
Ressourcen für weitere Exploration:
Das obige ist der detaillierte Inhalt vonWie rufe ich alle Unterverzeichnisse eines bestimmten Verzeichnisses in MySQL mit einer einzigen Abfrage ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!