Hallo allerseits,
ich habe eine Tabelle, welche ungefähr so aussieht (nach Datum aufsteigend sortiert):
id datum
1 2011-06-28
2 2011-06-30
3 2011-07-05
4 2011-07-08
5 2011-08-11
6 2011-09-14
7 2011-09-15
8 2011-09-16
9 2011-09-17
Ich möchte aus dieser Tabelle 5 Einträge auswählen - bestimmt werden diese durch 1 Datum und die 4 vorherigen Daten. Die Ausgabe soll aber aufsteigend sortiert sein.
Absteigende Sortierung ist einfach
SELECT * FROM tabelle
WHERE datum <= '2011-09-15'
ORDER BY datum DESC
LIMIT 0,5
Gibt die richtigen Zeilen nur in der falschen Reihenfolge:
id datum
7 2011-09-15
6 2011-09-14
5 2011-08-11
3 2011-07-05
2 2011-06-30
Lass ich direkt aufsteigend sortieren, bekomme ich jedoch die falschen Zeilen
SELECT * FROM tabelle
WHERE datum <= '2011-09-15'
ORDER BY datum ASC
LIMIT 0,5
id datum
1 2011-06-28
2 2011-06-30
3 2011-07-05
4 2011-07-08
5 2011-08-11
Was ja auch logisch ist.
Der einzige Weg, den ich bisher gefunden hab gefällt mir nicht. Gibt es einen besseren?
SELECT * FROM
( SELECT * FROM tabelle i
WHERE i.datum <= '2011-09-15'
ORDER BY i.datum DESC
LIMIT 0,5
) a
ORDER BY a.datum ASC
Regards
Hral
MySQL-Version: 5.0.7