SQL ausgabe liste nach hinten
Geizhals » Forum » Programmierung » SQL ausgabe liste nach hinten (9 Beiträge, 194 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: SQL ausgabe liste nach hinten
06.11.2005, 23:36:10
Hallo!

Du willst also einen bestimmten Datensatz selektieren, und ausgehend von diesem möchtest du die 5 vorhergehenden Datensätze auswählen. Das ist im Grunde genommen ohne weiteres nicht möglich. Es gibt nämlich keine Möglichkeit auf die "natürliche Ordnung" der Datensätze in einer Datenbank zuzugreifen (jedenfalls ist mir solch eine DB nicht bekannt).

Nehmen wir z.B. an, du hast folgende Datensätze in einer Tabelle (nur die IDs):

1, 2, 4, 9, 8, 6, 10

Anmerkung: Es ist eine total willkürliche, nicht-konsekutive Sequenz. D.h. die Zahlenfolge weist Lücken auf und ist sprunghaft, also nicht strikt fortlaufend. Diese ID-Zahlenfolge kann durchaus das Resultat mehrerer DELETE und INSERT Abfragen sein.

Was du jetzt (vermutlich) willst, ist z.B. den Datensatz #6 und zusätzlich die Datensätze 1,2,4,9 und 8 auszuwählen, da sie in der "natürlichen Ordnung" die 5 vorhergehenden sind. Das ist aber, wie bereits erwähnt, nicht durchführbar.

Du kannst aber als mögliche, ähnliche Lösung folgendes tun: den Datensatz #x auswählen und außerdem noch alle Datensätze, die eine ID kleiner als x haben. Die entsprechende Abfrage:

SELECT * FROM table WHERE ID=x OR ID<x ORDER BY  ID DESC LIMIT 6

Einen Nachteil hat diese Abfrage: es können Datensätze selektiert werden, selbst wenn kein Datensatz mit der ID x existiert. Dieses Problem kannst du umgehen, indem du zwei, separate Abfragen durchführst. Also zuerst WHERE ID=x dann WHERE ID<x ORDER BY  ID DESC LIMIT 5.

Hope it helps :)


"Indeed our end is nigh. So sow the seeds of discipline, piety and virtue and reap the reward on the following day."

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung