Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL ORDER BY mehrere Spalten

Sortieren in einem ORDER BY erfolgt durch die erste Spalte und dann durch jede weitere Spalte in der angegebenen Anweisung.

Betrachten Sie beispielsweise die folgenden Daten:

Column1    Column2
=======    =======
1          Smith
2          Jones
1          Anderson
3          Andrews

Die Abfrage

SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2

zuerst nach allen Werten in Column1 sortieren

und dann die Spalten nach Column2 sortieren um dies zu produzieren:

Column1    Column2
=======    =======
1          Anderson
1          Smith
2          Jones
3          Andrews

Das heißt, die Daten werden zuerst in Column1 sortiert Reihenfolge und dann jede Teilmenge (Column1 Zeilen mit 1 als Wert) werden in der Reihenfolge der zweiten Spalte sortiert.

Der Unterschied zwischen den beiden von Ihnen geposteten Anweisungen besteht darin, dass die Zeilen in der ersten zuerst nach prod_price sortiert werden (Preisreihenfolge, vom niedrigsten zum höchsten) und dann nach Namen (d. h., wenn zwei Artikel denselben Preis haben, wird der mit dem niedrigeren Alpha-Wert für den Namen zuerst aufgeführt), während der zweite nach Namen sortiert wird nur (was bedeutet, dass die Preise basierend auf dem prod_name in der Reihenfolge angezeigt würden ohne Rücksicht auf den Preis).