Récupération de sous-répertoires dans une seule requête avec récursion MySQL
Considérons une table ressemblant à une structure de répertoires :
folders_table ----------------------- - INT id_folder - INT id_folder_parent - VARCHAR folder_name
Le défi réside dans la récupération de tous les sous-répertoires d'un répertoire spécifique à l'aide d'un seul SELECT requête.
Solution :
Les structures de bases de données traditionnelles ne peuvent pas prendre en charge cette requête efficacement. Pour l'activer, la structure de la base de données doit être modifiée. Plus précisément, une relation d'auto-référencement est introduite pour représenter la hiérarchie.
Instructions étape par étape :
Une fois les modifications terminées, la requête suivante peut être utilisée pour récupérer un arbre de n'importe quelle profondeur en une seule requête :
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
Ressources pour aller plus loin Exploration :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!