Tom: MySQL-Abfrage mit "Rekursion" möglich?

Beitrag lesen

Hello,

Wenn die Anzahl deiner Sätze pro Ebene begrenzbar ist, kommst Du sogar vollständig ohne Rekursion aus: mit gezielter Denormalisierung.

Schlüsselfeld sehr lang

0001.
0001.0001.
0001.0002.
0001.0001.0001
0001.0001.0001.0001
0002.
0002.0001.0001.
0002.0001.0002.
0002.0001.0003.
0002.0002.0001.
0002.0002.0002.

usw.

Ich denke, du siehst, wie die Begrenzug der Nummernkreise pro Ebene die Rekursion vermeiden hilft.

Es lassen sich so sofort alle Eltern und Kinder _in_einem_Statement_ besorgen.

Angenommen, Du hast das Child

0001.0001.0001.0001

und möchtest nun den kürzesten Weg zur Wurzel zurückverfolgen, dann muss der Wert in der Datenbank einfach immer mit dem entprechenden linken Teil der Child-ID übereinstimmen.

Pseudeocode:

select ID from $table where ID=left($child(length(trim((ID)));

oder:

select ID from $table where locate(trim(ID),$child)=1;

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau