Um eine MySQL-Tabelle durch zwei Spalten
Wie Sortiere ich eine MySQL-Tabelle durch zwei Spalten?
Was ich will, sind die Artikel nach besten Bewertungen von den ersten, dann jüngsten Datum. Als ein Beispiel, dies wäre ein Beispiel für die Ausgabe (Links # ist die Bewertung, dann den Titel des Artikels, dann den Artikel-Datum)
50 | Dieser Artikel rocks | Feb 4, 2009 35 | Dieser Artikel ist ziemlich gut | Feb 1, 2009 5 | Dieser Artikel wird nicht so heiß | Jan 25, 2009
Den entsprechenden SQL, das ich verwende ist:
ORDER BY article_rating, article_time DESC
Kann ich Sortieren, indem Sie die eine oder andere, aber nicht beide.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standard-Sortierung ist aufsteigend, müssen Sie das Schlüsselwort DESC an, um sowohl Ihre Bestellungen:
Sortieren von article_time nur, wenn es zwei Artikel mit der gleichen Bewertung. Von allen, die ich sehen kann, in deinem Beispiel, das ist genau das, was passiert.
aber Bedenken Sie:
DESC
am Ende wird Sortieren durch beide Spalten absteigend. Sie gebenASC
wenn Sie es wollen, sonstVielleicht helfen Sie jemand, der sucht, die Möglichkeit zum Sortieren der Tabelle durch zwei Spalten, sondern in paralel Weg. Dies bedeutet zum kombinieren von zwei möglichen Verwendung von Aggregat-Sortier-Funktion. Es ist sehr nützlich, wenn zum Beispiel das abrufen von Artikeln mit Volltext-Suche und auch über die Artikel veröffentlichen Datum.
Dies ist nur ein Beispiel, aber wenn du fangen Sie die Idee finden Sie eine Menge von Aggregatfunktionen zu verwenden. Sie können auch das Gewicht der Spalten zu bevorzugen, die über eine Sekunde. Die Funktion von mir nimmt Extreme aus beiden Arten, so die wertvollsten Zeilen auf der Oberseite.
Sorry wenn es einfacher Lösungen, um diese Arbeit zu tun, aber ich habe keine gefunden.
Folgenden wird, um Ihre Daten je nach Spalte in absteigender Reihenfolge.