Une table de structure arborescente dans MySQL peut-elle être interrogée à n'importe quelle profondeur en une seule tentative ?
La question se pose de savoir s'il est possible de parcourez une table arborescente dans MySQL et récupérez tous les descendants ou ancêtres, quelle que soit leur profondeur, en un seul requête.
Réponse
Oui, c'est possible. Une technique de traversée d'arbre de précommande modifiée, telle que décrite dans « Arbres et hiérarchies en SQL pour Smarties » de Joe Celko, permet cela. Voici un extrait du document de référence :
SELECT * FROM tree ORDER BY FIELD(`left`, @field_list_all, @field_list_current, @field_list_children) LIMIT 1
Cette requête utilise une « liste de champs » stockée sous forme de variable (@field_list_all) pour suivre le parcours et identifier les nœuds à traiter efficacement. Reportez-vous à la documentation spécifiée pour un exemple complet.
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!