Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQL ORDER BY plusieurs colonnes

Trier dans un ORDER BY est effectué par la première colonne, puis par chaque colonne supplémentaire dans l'instruction spécifiée.

Par exemple, considérez les données suivantes :

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

La requête

SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2

trierait d'abord toutes les valeurs de Column1

puis triez les colonnes par Column2 pour produire ceci :

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

En d'autres termes, les données sont d'abord triées dans Column1 ordre, puis chaque sous-ensemble (Column1 lignes qui ont 1 comme leur valeur) sont triés dans l'ordre de la deuxième colonne.

La différence entre les deux relevés que vous avez publiés est que les lignes du premier seraient triées en premier par prod_price (ordre de prix, du plus bas au plus élevé), puis par ordre de nom (ce qui signifie que si deux articles ont le même prix, celui avec la valeur alpha la plus faible pour le nom serait répertorié en premier), tandis que le second serait trié par ordre de nom uniquement (ce qui signifie que les prix apparaîtraient dans l'ordre en fonction du prod_name sans égard au prix).