ORDER BY in MySQL: DESC & Query ASC con ESEMPIO

Sommario:

Anonim

Ordinamento dei risultati

Utilizzando il comando SELECT, i risultati sono stati restituiti nello stesso ordine in cui i record sono stati aggiunti al database. Questo è l'ordinamento predefinito. In questa sezione vedremo come ordinare i risultati della nostra query. L'ordinamento è semplicemente riorganizzare i risultati della nostra query in un modo specificato. L'ordinamento può essere eseguito su una singola colonna o su più di una colonna. Può essere eseguito su numeri, stringhe e tipi di dati di data.

Cos'è ORDER BY in MySQL?

MySQL ORDER BY viene utilizzato insieme alla query SELECT per ordinare i dati in modo ordinato. La clausola MySQL ORDER BY viene utilizzata per ordinare i set di risultati della query in ordine crescente o decrescente.

SELECT statement… [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

QUI

  • "Istruzione SELECT ..." è la normale query di selezione
  • "|" rappresenta le alternative
  • "[WHERE condition | GROUP BY` field_name (s) `HAVING condition" è la condizione facoltativa utilizzata per filtrare i set di risultati della query.
  • "ORDER BY" esegue l'ordinamento del set di risultati della query
  • "[ASC | DESC]" è la parola chiave utilizzata per ordinare i set di risultati in ordine crescente o decrescente. Nota ASC viene utilizzato come impostazione predefinita.

Cosa sono le parole chiave DESC e ASC?

ASC è la forma abbreviata per ascendere

MySQL DESC è la forma abbreviata per discendente

Viene utilizzato per ordinare i risultati della query in uno stile dall'alto verso il basso.

Viene utilizzato per ordinare i risultati della query in uno stile dal basso verso l'alto

Quando si lavora sui tipi di dati di data, la prima data viene visualizzata in cima all'elenco.

. Quando si lavora sui tipi di data, l'ultima data viene mostrata in cima all'elenco.

Quando si lavora con tipi di dati numerici, i valori più bassi vengono visualizzati in cima all'elenco.

Quando si lavora con tipi di dati numerici, i valori più alti vengono visualizzati nella parte superiore del set di risultati della query.

Quando si lavora con i tipi di dati stringa, il set di risultati della query viene ordinato da quelli che iniziano con la lettera A fino alla lettera Z.

Quando si lavora con i tipi di dati stringa, il set di risultati della query viene ordinato da quelli che iniziano con la lettera Z fino alla lettera A.

Entrambe le parole chiave SQL DESC e ASC vengono utilizzate insieme all'istruzione SELECT e alla clausola ORDER BY di MySQL.

Sintassi DESC e ASC

La parola chiave di ordinamento SQL DESC ha la seguente sintassi di base.

SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]

QUI

  • SELEZIONA {fieldName (s) | *} FROM tableName (s) è l'istruzione contenente i campi e le tabelle da cui ottenere il set di risultati.
  • [WHERE condition] è facoltativo ma può essere utilizzato per filtrare i dati in base alla condizione data.
  • ORDER BY fieldname (s) è obbligatorio ed è il campo su cui deve essere eseguito l'ordinamento. La parola chiave MySQL DESC specifica che l'ordinamento deve essere in ordine decrescente.
  • [LIMIT] è facoltativo ma può essere utilizzato per limitare il numero di risultati restituiti dal set di risultati della query.

Esempi:

Vediamo ora un esempio pratico:

SELECT * FROM members;

L'esecuzione dello script sopra in MySQL workbench su myflixdb ci dà i seguenti risultati mostrati di seguito.

 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553

Supponiamo che il reparto marketing desideri che i dettagli dei membri siano disposti in ordine decrescente di data di nascita. Questo li aiuterà a inviare gli auguri di compleanno in modo tempestivo. Possiamo ottenere il suddetto elenco eseguendo una query come di seguito:

SELECT * FROM members ORDER BY date_of_birth DESC;

L'esecuzione dello script sopra in MySQL workbench su myflixdb ci dà i seguenti risultati mostrati di seguito.

La stessa query in ordine crescente

SELEZIONA * DA membri ORDINA PER date_of_birth ASC

Nota: i valori NULL indicano nessun valore (non zero o una stringa vuota). Osserva il modo in cui sono stati ordinati.

Altri esempi

Consideriamo il seguente script che elenca tutti i record dei membri.

SELECT * FROM `members`;

L'esecuzione dello script precedente fornisce i seguenti risultati mostrati di seguito.

 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

Supponiamo di voler ottenere un elenco che ordina il set di risultati della query utilizzando il campo sesso, utilizzeremo lo script mostrato di seguito.

SELECT * FROM `members` ORDER BY `gender`;
 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

I membri "Femmina" sono stati visualizzati per primi seguiti dai membri "Maschio", questo perché quando viene utilizzata la clausola ORDER BY DESC senza specificare la parola chiave ASC o MySQL DESC, per impostazione predefinita, MySQL ha ordinato il set di risultati della query in ordine crescente.

Vediamo ora un esempio che esegue l' ordinamento utilizzando due colonne ; la prima è ordinata in ordine crescente per impostazione predefinita, mentre la seconda colonna è ordinata in ordine decrescente.

SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;

L'esecuzione dello script precedente nel workbench MySQL su myflixdb fornisce i seguenti risultati.

La colonna del sesso era ordinata in ordine crescente per impostazione predefinita, mentre la colonna della data di nascita era ordinata esplicitamente in ordine decrescente

Perché possiamo usare DESC e ASC?

Supponiamo di voler stampare una cronologia dei pagamenti per un membro della videoteca per aiutare a rispondere alle domande dalla reception, non sarebbe più logico stampare i pagamenti in ordine cronologico decrescente a partire dal pagamento recente al pagamento precedente?

DESC in SQL è una parola chiave che diventa utile in tali situazioni. Possiamo scrivere una query che ordina l'elenco in ordine decrescente utilizzando la data di pagamento.

Supponiamo che il reparto marketing desideri ottenere un elenco di film per categoria che i membri possono utilizzare per decidere quali film sono disponibili nella libreria quando si noleggiano film, non sarebbe più logico cercare di ordinare i nomi delle categorie di film e il titolo in ordine crescente in modo che i membri possono cercare rapidamente le informazioni dall'elenco?

La parola chiave ASC è utile in tali situazioni; possiamo ottenere l'elenco dei film ordinato in base al nome della categoria e al titolo del film in ordine crescente.

Sommario

  • L'ordinamento dei risultati della query sta riorganizzando le righe restituite da un set di risultati della query in ordine crescente o decrescente.
  • La parola chiave DESC in SQL viene utilizzata per ordinare il set di risultati della query in ordine decrescente.
  • La parola chiave ASC viene utilizzata per ordinare il set di risultati della query in ordine crescente.
  • Sia DESC che ASC funzionano insieme alla parola chiave ORDER BY. Possono anche essere utilizzati in combinazione con altre parole chiave come la clausola WHERE e LIMIT
  • L'impostazione predefinita per ORDER BY quando non è stato specificato nulla in modo esplicito è ASC.