Nested Sets nach Prioritätszahl sortieren

casperdu

Grünschnabel
Ich möchte ein eine mysqlabfrage zusätzlich nach einer Prioritätszahl (0-100) absteigend sortieren.
Jeder Datensatz hat neben der id, lft, rgt, titel usw eine Prioritätszahl 0-100. Nach der soll die Ausgabe sortiert erfolgen.

Folgende Query:
PHP:
SELECT a.id, a.priority, a.lft, a.rgt, a.title, 
count(*) - 1 AS level 
FROM node AS a join node AS b 
ON a.lft between b.lft AND b.rgt AND a.rgt between b.lft AND b.rgt 
GROUP BY a.id, a.title 
ORDER BY a.left, a.id;

Habe einiges versucht dies in einer Query zu lösen :(
 
Mit nested sets wird das Sortieren mit der von dir angesonnenen Methode wohl nichts werden. Der links-Wert wird immer eindeutig sein, danach wird es nichts weiter zu Sortieren geben.

Das ist einer der Nachteile von nested sets, Lesen ist deutlich einfacher als Ändern, das Ändern eines einzigen Zweiges kann u.U. eine Änderung aller Zweige erfordern.
 
Das wird auch nix, du musst deine Priotritätswerte beim berechnen der linken und rechten Werte der Datensätze mit berücksichtigen. Wenn du die Sortierung so manipulierst kommen die Zeige durcheinander.
 
Zurück