Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SQL ORDER BY várias colunas


Classificando em um ORDER BY é feito pela primeira coluna e, em seguida, por cada coluna adicional na instrução especificada.

Por exemplo, considere os seguintes dados:
Column1    Column2
=======    =======
1          Smith
2          Jones
1          Anderson
3          Andrews

A pergunta
SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2

primeiro classificaria por todos os valores em Column1

e, em seguida, classifique as colunas por Column2 para produzir isso:
Column1    Column2
=======    =======
1          Anderson
1          Smith
2          Jones
3          Andrews

Em outras palavras, os dados são classificados primeiro em Column1 ordem e, em seguida, cada subconjunto (Column1 linhas que têm 1 como seu valor) são classificados na ordem da segunda coluna.

A diferença entre as duas declarações que você postou é que as linhas na primeira seriam classificadas primeiro por prod_price (ordem de preço, do menor para o maior) e, em seguida, por ordem de nome (o que significa que, se dois itens tiverem o mesmo preço, aquele com o menor valor alfa para o nome será listado primeiro), enquanto o segundo classificará por ordem de nome apenas (o que significa que os preços apareceriam em ordem com base no prod_name independentemente do preço).