Wie sortiere ich eine MySQL-Tabelle nach zwei Spalten?
Was ich möchte, sind Artikel, die zuerst nach den höchsten Bewertungen und dann nach dem letzten Datum sortiert sind. Dies wäre beispielsweise eine Beispielausgabe (links # ist die Bewertung, dann der Artikeltitel und dann das Artikeldatum).
50 | Dieser Artikel rockt | 4. Februar 2009 35 | Dieser Artikel ist ziemlich gut 1. Februar 2009 5 | Dieser Artikel ist nicht so heiß 25. Januar 2009
Das relevante SQL, das ich verwende, ist:
ORDER BY article_rating, article_time DESC
Ich kann nach dem einen oder anderen sortieren, aber nicht nach beiden.
mysql
sql-order-by
Billynoah
quelle
quelle
wird nur nach article_time sortiert, wenn zwei Artikel mit derselben Bewertung vorhanden sind. Nach allem, was ich in Ihrem Beispiel sehen kann, passiert genau dies.
aber bedenken Sie:
quelle
DESC
am Ende wird nach beiden Spalten absteigend sortiert. Sie müssen angeben,ASC
ob Sie es anders wollenquelle
Dies kann vielleicht jemandem helfen, der nach einer Möglichkeit sucht, Tabellen nach zwei Spalten zu sortieren, jedoch parallel. Dies bedeutet, zwei Sortierungen mithilfe der aggregierten Sortierfunktion zu kombinieren. Dies ist sehr nützlich, wenn Sie beispielsweise Artikel mithilfe der Volltextsuche abrufen und das Veröffentlichungsdatum des Artikels angeben.
Dies ist nur ein Beispiel, aber wenn Sie auf die Idee kommen, finden Sie viele Aggregatfunktionen, die Sie verwenden können. Sie können die Spalten sogar gewichten, um eine gegenüber der Sekunde zu bevorzugen. Die Funktion von mir nimmt Extreme von beiden Arten, daher sind die am meisten geschätzten Zeilen oben.
Es tut mir leid, wenn es einfachere Lösungen für diesen Job gibt, aber ich habe keine gefunden.
quelle
Im Folgenden werden Ihre Daten in Abhängigkeit von beiden Spalten in absteigender Reihenfolge sortiert.
quelle