Auswahl aus einer Tabelle

Auswahl aus einer Tabelle

am 13.12.2006 08:47:44 von Michael Hufschmidt

Liebe Leute,

ich habe eine Tabelle "Texte" mit sehr vielen Records. Mit
SELECT datum, text FROM Texte ORDER BY datum LIMIT 100
bekomme ich die ersten hundert Datensätze aufsteigend sortiert nach datum.
Mit
SELECT datum, text FROM Texte ORDER BY datum DESC LIMIT 100
bekomme ich die letzten hundert Datensätze absteigend sortiert nach datum.

Wie aber bekomme ich die letzten hundert Datensätze aufsteigend (!) sortiert
nach Datum?

O.K. eine Möglichkeit wäre natürlich die Ergebnismenge des zweiten Selects
in eine temporäre Tabelle zu speichern und die dann mit "ORDER BY datum"
auszulesen. Geht's nicht auch einfacher?

mal was zum Knobeln von
Michael

Re: Auswahl aus einer Tabelle

am 13.12.2006 10:02:12 von Helmut Chang

Michael Hufschmidt schrieb:

> ...Mit
> SELECT datum, text FROM Texte ORDER BY datum LIMIT 100
> bekomme ich die ersten hundert Datensätze aufsteigend sortiert nach datum.
> Mit
> SELECT datum, text FROM Texte ORDER BY datum DESC LIMIT 100
> bekomme ich die letzten hundert Datensätze absteigend sortiert nach datum.
>
> Wie aber bekomme ich die letzten hundert Datensätze aufsteigend (!) sortiert
> nach Datum?

Indem du definierst, welches die letzten 100 Datensätze sind und das in
die ORDER BY Klausel aufnimmst. Beispiel nach ID-Spalte:

SELECT datum, text
FROM Texte
ORDER BY DESC,
Datum ASC
LIMIT 100

gruss, heli

Re: Auswahl aus einer Tabelle

am 13.12.2006 10:04:07 von Thomas Rachel

Michael Hufschmidt wrote:

> SELECT datum, text FROM Texte ORDER BY datum DESC LIMIT 100
> bekomme ich die letzten hundert Datensätze absteigend sortiert nach
> datum.
>
> Wie aber bekomme ich die letzten hundert Datensätze aufsteigend (!)
> sortiert nach Datum?

Du verschweigst leider Deine MySQL-Version. Mit hinreichnd neuem MySQL
geht

SELECT * FROM (SELECT datum, text FROM Texte ORDER BY datum DESC LIMIT
100) tmp ORDER BY datum


HTH,

Thomas
--
> Es gibt Perl-Entwickler, die behaupten auch in Perl könne man echtes
> OOP praktizieren.
Und mit einem Kalligraphiepinsel kann man Wände streichen.
(Jan Sauerwein und Hauke Ingmar in de.comp.lang.java)

Re: Auswahl aus einer Tabelle

am 13.12.2006 10:05:33 von BF

Hallo,

probier's mal mit nem Subselect:

SELECT datum, text FROM (
SELECT datum, text FROM texte ORDER BY datum DESC LIMIT 100)
AS texteZwo
ORDER BY datum ASC

hth,

BF

Re: Auswahl aus einer Tabelle

am 13.12.2006 10:23:11 von Surgo

BF schrieb:

> Hallo,
>
> probier's mal mit nem Subselect:
>

Wegen Subselect muss Du allerdings die Version von mySql beachten, IMHO
funktionierte das zumindest bis Version 4.1(??) noch nicht - die finale
Version 4.1 unterstützt die Geschichte dann aber.

Ansonsten kannst Du nach der Sortierung die Werte für Limit ja auch
errechnen - von wegen Anzahl Datensätze in Tabelle, dann hast Du die
Grenzwerte, die Du brauchst.

Gruß
Timo
www.reposhop24.de

Re: Auswahl aus einer Tabelle

am 13.12.2006 10:33:35 von Michael Hufschmidt

Michael Hufschmidt wrote:

> Liebe Leute,

> Wie aber bekomme ich die letzten hundert Datensätze aufsteigend (!)
> sortiert nach Datum?
>
> mal was zum Knobeln von

Danke an BF, Surgo, Thomas. Das mit dem Subselect ist die Lösung! Ich
verwende zur Zeit noch MySQL 4.1.10 und da funktioniert das schon prima.
(Werde demnächst auf 5.x umstiegen).

Ist das nicht eine tolle Newsgroup?
Michael

Re: Auswahl aus einer Tabelle

am 13.12.2006 17:56:51 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)