Zum Inhalt springen

SQL-Query: Limit ???


Net-srac

Empfohlene Beiträge

Hallo, ich habe eine Datenbank mit Messages und frage sie zur Zeit mit folgender Abfrage für einen Empfaenger ab.

SELECT *

FROM `NA_messages`

WHERE empfaenger = 'Netsrac'

ORDER BY datum

Nun bekomme ich eine Liste von 300 Einträgen. Die ältesten unten und die neusten Oben.

Jetzt mein Problem. Ich will immer nur die 200 Ältesten anzeigen. Also quasi von unten ab bis 200.

Hat jemand eine Idee wie ich das umstellen kann? Ich hatte an ein "Limit" gedacht, aber das Hilft mir ja nicht wirklich weiter, da ich ja die ID der letzten Mail nicht weiß..

Klar könnte ich hergehen und ein order by datum ASC machen und das auf 200 begrenzen. Aber dann müßte mein Programm dieses Result noch einmal umgekehrt sortieren... Diese Logik gehört mir eher in die Abfrage als ins Programm...

Ich verwende MySQL 4.0 und PHP als Sprache.

Danke für eure Hilfe.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Net-srac

SELECT *

FROM `NA_messages`

WHERE empfaenger = 'Netsrac'

ORDER BY datum

Nun bekomme ich eine Liste von 300 Einträgen. Die ältesten unten und die neusten Oben.

Jetzt mein Problem. Ich will immer nur die 200 Ältesten anzeigen. Also quasi von unten ab bis 200.

Also ob das bei MySQL auch geht, kann ich dir nicht sagen, aber meine Idee war eine "TopX" abfrage zu machen und diese dann asc zu sortieren...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von dgr243

Also ob das bei MySQL auch geht, kann ich dir nicht sagen, aber meine Idee war eine "TopX" abfrage zu machen und diese dann asc zu sortieren...

Das kann ich doch dann aber nicht in einer Query machen oder?

Was genau meinst du mit TopX ?

@Brunswick, soweit ich weiß unterstützt Mysql4 leider noch keine Subselects. Das ist erst ab Version 5 geplant, die aber noch nicht Stable ist.

Also wird diese Query auch nicht gehen. :(

Danke Trotzdem ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Net-srac

soweit ich weiß unterstützt Mysql4 leider noch keine Subselects. Das ist erst ab Version 5 geplant, die aber noch nicht Stable ist.

Ab 4.1 gibts schon Subselects, ist aber auch noch nicht stable: http://www.mysql.com/doc/en/Nutshell_4.1_features.html

LIMIT ist für Mysql das ensprechende.

SELECT * FROM Table WHERE Feld>Wert LIMIT 200

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Wolle

Ab 4.1 gibts schon Subselects, ist aber auch noch nicht stable: http://www.mysql.com/doc/en/Nutshell_4.1_features.html

LIMIT ist für Mysql das ensprechende.

SELECT * FROM Table WHERE Feld>Wert LIMIT 200

Naja, wie auch immer....

ich hab jetzt in einer for Schleife die Länge des Results um eins verringert und dann mit mysql_data_seek den Zeiger gesetzt...

also lasse ich quasi einfach das Result in umgekehrter Reihenfolge ausgeben. Ob das jetzt so performant ist kann ich leider nicht einschätzen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...