Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête MySQL récursive ?

MySQL ne prend pas en charge les requêtes récursives.

Je vous suggère de regarder la présentation de Bill Karwin où il compare quatre modèles différents de stockage de données hiérarchiques et examine leurs avantages et inconvénients :

  • Liste de contiguïté
  • Énumération des chemins
  • Ensembles imbriqués
  • Tableau de fermeture

La diapositive 48 montre la difficulté relative de certains types de requêtes avec chacun des modèles. D'après votre question, il semble que vous soyez le plus intéressé par "Query subtree", pour lequel la liste de contiguïté (le modèle que vous utilisez actuellement) fonctionne le moins bien des quatre.

Alternativement, si vous voulez simplement sélectionner l'arbre entier, comme dans toutes les données de la table, vous pouvez utiliser la requête simple SELECT * FROM yourtable et reconstruire l'arborescence dans le client.