Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Rekursive MySQL-Abfrage?

MySQL unterstützt keine rekursiven Abfragen.

Ich würde vorschlagen, dass Sie sich Bill Karwins Präsentation ansehen wo er vier verschiedene Modelle zum Speichern hierarchischer Daten vergleicht und ihre Vor- und Nachteile betrachtet:

  • Nachbarschaftsliste
  • Pfadaufzählung
  • Verschachtelte Sätze
  • Abschlusstabelle

Folie 48 zeigt die relative Schwierigkeit bestimmter Arten von Abfragen mit jedem der Modelle. Aus Ihrer Frage geht hervor, dass Sie am meisten an "Abfrage-Teilbaum" interessiert sind, für den die Adjazenzliste (das Modell, das Sie derzeit verwenden) die schlechteste der vier abschneidet.

Wenn Sie alternativ nur den gesamten Baum auswählen möchten, wie bei allen Daten in der Tabelle, können Sie die einfache Abfrage SELECT * FROM yourtable verwenden und die Baumstruktur im Client rekonstruieren.