namous
22-02-2006, 16:03
Tabelle vorhanden, wie folgt aufgebaut:
id int(11) not null auto_increment primary key,
date datetime,
blablub varchar(255)
Das Problem:
Gehen wir davon aus in dieser Tabelle sind 500 Einträge gespeichert. Nun brauche ich die 10 aktuellsten Einträge, wobei von denen der aelteste zu erst ausgegeben werden soll.
Daten (vereinfacht):
13:00 Uhr A
14:00 Uhr B
15:00 Uhr C
16:00 Uhr C
Genau in dieser Reihenfolge brauche ich die Daten aber eben nur die letzten. Eine temporäre Tabelle möchte ich vermeiden, ebenso müssen alle Daten in der gleichen Tabelle bleiben.
Ansätze:
SELECT * FROM tabelle WHERE id IN (SELECT id FROM TABELLE ORDER BY date DESC LIMIT 24) ORDER BY date ASC
Geht nicht, da MySQL 4.1.11 kein LIMIT in einem Subquery innerhalb von IN akzeptiert
SELECT * FROM tabelle ORDER BY date DESC LIMIT 24
Humbug, da ich hier die Ergebnisse in der Form: 16:00 Uhr, 15:00 Uhr, 14:00 Uhr, ... kriege
id int(11) not null auto_increment primary key,
date datetime,
blablub varchar(255)
Das Problem:
Gehen wir davon aus in dieser Tabelle sind 500 Einträge gespeichert. Nun brauche ich die 10 aktuellsten Einträge, wobei von denen der aelteste zu erst ausgegeben werden soll.
Daten (vereinfacht):
13:00 Uhr A
14:00 Uhr B
15:00 Uhr C
16:00 Uhr C
Genau in dieser Reihenfolge brauche ich die Daten aber eben nur die letzten. Eine temporäre Tabelle möchte ich vermeiden, ebenso müssen alle Daten in der gleichen Tabelle bleiben.
Ansätze:
SELECT * FROM tabelle WHERE id IN (SELECT id FROM TABELLE ORDER BY date DESC LIMIT 24) ORDER BY date ASC
Geht nicht, da MySQL 4.1.11 kein LIMIT in einem Subquery innerhalb von IN akzeptiert
SELECT * FROM tabelle ORDER BY date DESC LIMIT 24
Humbug, da ich hier die Ergebnisse in der Form: 16:00 Uhr, 15:00 Uhr, 14:00 Uhr, ... kriege