zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Mysql: SELECT 5 neuste Datensätze, aber in umgekehrter Reihenfolge?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 19.10.2009, 18:30
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 24.09.2003
Beiträge: 243
braindead befindet sich auf einem aufstrebenden Ast
Standard Mysql: SELECT 5 neuste Datensätze, aber in umgekehrter Reihenfolge?

Hi,
ich habe folgendes Problem:
Ich will eine Datenbank abfrage machen und nur die neusten 5 Einträge aus der Datenbank erhalten.
Im Prinzip kein Problem:
mit ORDER BY wird nach der Zeitspalte in absteigender Richtung sortiert (also angefangen beim neusten) und mit dem Limit statement werden nur 5 ausgewählt.

Mein Problem ist aber das ich am Ende aber doch die Aufsteigende Reihenfolge ausgeben will. Mit obiger Methoder erhalte ich folgende Liste (ohne noch nachträglich sortieren zu müssen):
- neustes Element
- zweit neustes
- 3. neustes
- 4. neustes
- 5. neustes

ich will aber folgendes:
-5. neustes
- 4. neustes
- 3. neustes
- 2. neustes
- neustes

Um das direkt mit dem Select statement zu reaslisieren, müsste ich vorher wissen wieviele Elemente in der Datenbank enthalten sind und ich müsste noch dazu in aufsteigender Reihenfolge sortieren mit Order by. Und gerade die aufsteigende Sortierung lässt mich hier einiges an performance verlieren wenn die DB groß ist (da mysql die Sortierung ja nicht vorzeitig abbrechen kann und erstmal alles Sortieren muss). Punkt zwei ist, dan ich vorher garnicht weiß wieviele Datensätze enthalten sind, bzw. wäre das ein zusätzlicher Aufwand.

Wenn es da keine Möglichkeit gibt, das Ergebnis im nachhinein nochmal umzusortieren, bleibt mir wohl nur die Scriptseitige Umsortierung, was ja auch nicht so toll wäre.

EDIT: ich habe erstmal eine Lösung gefunden:
Ich habe das gesammte select Statement (das mit zwar die richtigen Datensätze liefert, aber in umgedrehter Reihenfolge[Liste 1, oben]) einfach in ein weiteres Statement gesteckt, also quasi eine Art subselect durchgeführt:
SELECT * FROM (original statement) AS subtable ORDER BY time ASC

das funktioniert, ob das eine vernünftige Lösung ist, ist natürlich eine andere Frage.

Geändert von braindead (19.10.2009 um 18:42 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 19.10.2009, 18:50
Benutzerbild von fox
fox fox ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 11.09.2006
Beiträge: 1.008
fox sorgt für eine eindrucksvolle Atmosphärefox sorgt für eine eindrucksvolle Atmosphäre
Standard

Wenn du PHP verwendest: Was spricht gegen array_reverse ?
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 19.10.2009, 19:00
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 24.09.2003
Beiträge: 243
braindead befindet sich auf einem aufstrebenden Ast
Standard

Erstmal nichts, die Frage ist nur, was wäre schneller? Also diese Subselect Methode oder die Scriptseitige Lösung?
Mit Zitat antworten
  #4 (permalink)  
Alt 19.10.2009, 19:34
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Bei fünf Datensätzen ist der Unterschied wohl vernachlässigbar.

Prinzipiell ist zwar das Ordnen der Elemente in umgekehrter Reihenfolge einfacher (O(n)) als das erneute Sortieren (O(n·log n)). Aber bei fünf Elementen ist das vernachlässigbar.
__________________
Markus Wulftange

Geändert von Gumbo (19.10.2009 um 19:38 Uhr)
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mysql Select Problem: auswählen von Zeilen die einen Wert aus Subselect NICHT haben? braindead Serveradministration und serverseitige Scripte 4 13.03.2008 13:04
Mysql: mit nur einem Select das nächste Element auswählen (nicht kontinuierliche Tab) braindead Serveradministration und serverseitige Scripte 1 20.01.2008 14:14
MySQL: AVG und COUNT in einem SELECT kominieren wie muss GROUP BY aussehen? braindead Serveradministration und serverseitige Scripte 8 16.01.2008 14:10
Datensätze aus MySql darstellen hieger CSS 22 08.08.2007 07:24
mysql: kann man count() in select Anfragen nicht mit anderen Spalten kombinieren? braindead Serveradministration und serverseitige Scripte 5 13.03.2007 23:53


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:11 Uhr.