Mysql
 sql >> Database >  >> RDS >> Mysql

ORDINE SQL PER più colonne

Ordinamento in un ORDER BY viene eseguita dalla prima colonna e quindi da ogni colonna aggiuntiva nell'istruzione specificata.

Ad esempio, considera i seguenti dati:

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

La domanda

SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2

prima ordina in base a tutti i valori in Column1

e poi ordina le colonne per Column2 per produrre questo:

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

In altre parole, i dati vengono prima ordinati in Column1 ordine, quindi ogni sottoinsieme (Column1 righe che hanno 1 come valore) sono ordinati in base alla seconda colonna.

La differenza tra le due dichiarazioni che hai pubblicato è che le righe nella prima verrebbero ordinate prima per prod_price (ordine di prezzo, dal più basso al più alto), e poi per ordine di nome (il che significa che se due articoli hanno lo stesso prezzo, quello con il valore alfa più basso per nome sarebbe elencato per primo), mentre il secondo ordinerebbe in ordine di nome solo (il che significa che i prezzi apparirebbero in ordine in base a prod_name senza riguardo per il prezzo).