Umwandeln einer MSSQL-CTE-Abfrage in MySQL
In einem MySQL-Schema mit einer „Kategorie“-Tabelle, die Spalten für ID, Eltern-ID und enthält Mit dem Namen möchten Sie eine MSSQL-CTE-Abfrage replizieren, die einen Kategoriebaum von unten nach oben für eine angegebene Kategorie-ID aufbaut. Diese Abfrage lautet wie folgt:
with CTE (id, pid, name) as ( select id, parentid as pid,name from category where id = 197 union all select CTE.pid as id , category.parentid as pid, category.name from CTE inner join category on category.id = CTE.pid ) select * from CTE
Leider fehlt MySQL die Unterstützung für CTEs. Daher ist die Verwendung einer Unterabfrage anstelle dieser Abfrage möglicherweise keine Option, da der betreffende CTE rekursiv ist und innerhalb der Abfrage auf sich selbst verweist. MySQL unterstützt keine rekursiven CTEs.
Um eine ähnliche Funktionalität zu erreichen, muss eine gespeicherte Prozedur implementiert werden. Eine frühere Antwort zum Thema „Generieren eines tiefenbasierten Baums aus hierarchischen Daten in MySQL (keine CTEs)“ kann als Ausgangspunkt für die Erstellung eines solchen Verfahrens dienen.
Das obige ist der detaillierte Inhalt vonWie kann ich eine rekursive MSSQL-CTE-Abfrage zum Erstellen eines Kategoriebaums in MySQL replizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!