Problème :
Traverser une structure hiérarchique, telle qu'un table de nomenclature, nécessite une méthode pour récupérer de manière récursive les lignes afin de créer une représentation arborescente imbriquée. Cependant, les requêtes SQL traditionnelles sont limitées dans leur capacité à gérer la récursion.
Réponse :
En 2011, une question a été publiée sur DBA StackExchange cherchant une solution MySQL pour l'arborescence traversée. La réponse a fourni un ensemble de procédures stockées :
Implémentation :
Appel GetFamilyTree(item_id) pour récupérer l'arbre généalogique d'un élément spécifique. Cette procédure stockée trouvera récursivement le parent et tous les ancêtres, renvoyant les résultats sous forme d'arborescence en couches.
Exemple :
CREATE PROCEDURE GetFamilyTree( IN item_id INT ) BEGIN SELECT ... # Perform recursive tree traversal END;
Utilisation :
CALL GetFamilyTree(1);
Cela récupérera l'intégralité de l'arbre généalogique de l'élément 1 et le présentera dans un format imbriqué. format.
Avantages :
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!