dedlfix: suchergebnisse, detailseite und blaetterfunktion

Beitrag lesen

Hi!

WHERE IF(position < $currentPosition, TRUE, IF(position > $currentPosition, FALSE, id < $currentID))

Hm.. ich verstehe. Allerdings habe ich Probleme das Beispiel zu adaptieren, sobald mehrere Sortierkriterien ins Spiel kommen.

Das lässt sich ja noch durch "Rekursion" lösen.

In der "echten" Anwendung ist die ID erst das letzte Soriterkriterium, davor kommen vier andere Spalten zum Einsatz.

Die gesamte Bedingung kopieren und anstelle von id < $currentID einfügen, dabei das position durch das jeweilige Kriterium austauschen. Den Vorgang solange wiederholen, bis die ID das letzte Kriterium ist. Ergibt eine mordsmäßig verschachtelte Konstruktion bei ausreichend vielen Kriterien. Übersicht lässt sich wieder herstellen, wenn du das in eine Stored Function auslagerst (siehe Stored Programs and Views).

Erschwerend kommt hinzu, dass position dort kein fester Spaltenwert ist, sondern sich durch diverse Subselects zusammensetzt.

Subselects in Stored Functions oder Views auslagern, um die Übersicht wieder herzustellen, wäre eine Möglichkeit.

Ich bin drauf und dran einen anderen Weg zu gehen.

Eigentlich hast du doch die Ergebnismenge schon in sortierter Form abgefragt und könntest aus dieser auch die Blätterinformation extrahieren (wenn ich aus deinem Beispiel richtig auf die eigentliche Anwendung schließe). Wenn du nach dem EVA-Prinzip zunächst die Daten zusammensuchst, sie in einerm Array ablegst und erst irgendwann später ausgibst, lässt sich dieses Array auch für weitere Auswertungen heranziehen.

Lo!