ORDINA PER MySQL: DESC & ASC Query con ESEMPIO

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 possiamo ordinare i risultati della nostra query. L'ordinamento consiste semplicemente nel riorganizzare i risultati della nostra query in un modo specifico. L'ordinamento può essere eseguito su una singola colonna o su più colonne. Può essere eseguito su numeri, stringhe e tipi di dati di data.

Cos'è ORDER BY in MySQL?

MySQL ORDINATO DA viene utilizzato insieme alla query SELECT per ordinare i dati in modo ordinato. IL MySQL La clausola 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 query di selezione normale
  • "| " rappresenta alternative
  • “[WHERE condizione | GRUPPO PER `nome_campo(i)` condizione HAVING” è la condizione facoltativa utilizzata per filtrare i set di risultati della query.
  • "ORDINATO DA" 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 predefinito.
  • Cosa sono le parole chiave DESC e ASC?

    Parole chiave DESC e ASCASC è la forma abbreviata per ascendente Parole chiave DESC e ASCMySQL DESC è la forma abbreviata per discendente
    Viene utilizzato per ordinare i risultati della query dall'alto al basso. Viene utilizzato per ordinare i risultati della query in uno stile dal basso verso l'alto
    Quando si lavora sui tipi di dati data, la prima data viene visualizzata in cima all'elenco. . Quando si lavora sui tipi di data, la data più recente viene visualizzata 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 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 tipi di dati stringa, il set di risultati della query viene ordinato da quelli che iniziano con la lettera Z fino alla lettera A.

    Sia le parole chiave SQL DESC che ASC vengono utilizzate insieme insieme all'istruzione SELECT e MySQL Clausola ORDER BY.


    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 {nome/i campo/i | *} FROM nome(i) tabella(i) è l'istruzione contenente i campi e le tabelle da cui ottenere il set di risultati.
    • [Condizione DOVE] è facoltativo ma può essere utilizzato per filtrare i dati in base alla condizione specificata.
    • ORDINATO DA fieldname(s) è obbligatorio ed è il campo su cui deve essere eseguito l'ordinamento. IL MySQL La parola chiave DESC specifica che l'ordinamento deve essere in ordine decrescente.
    • [LIMITE] è 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;

    Eseguendo lo script precedente in MySQL workbench su myflixdb ci 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 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
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 voglia che i dettagli dei membri siano organizzati in ordine decrescente di data di nascita. Questo li aiuterà a inviare gli auguri di compleanno in modo tempestivo. Possiamo ottenere tale elenco eseguendo una query come quella di seguito:

SELECT * FROM members ORDER BY date_of_birth DESC;

Eseguendo lo script precedente in MySQL workbench su myflixdb ci fornisce i seguenti risultati mostrati di seguito.

Esempio di DESC e ASC

La stessa query in ordine crescente

SELEZIONA * DA membri ORDINA PER data_di_nascita ASC

Esempio di DESC e 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 SQL sort by che elenca tutti i record dei membri.

SELECT * FROM `members`;

L'esecuzione dello script sopra riportato produce 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 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
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 ordini il set di risultati della query utilizzando il campo genere, 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 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
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 rm@tstreet.com
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 "femmine" sono stati visualizzati per primi seguiti dai membri "maschi", questo perché quando la clausola ORDER BY DESC viene utilizzata senza specificare l'ASC o MySQL La parola chiave DESC, per impostazione predefinita, MySQL ha ordinato il set di risultati della query in ordine crescente.

Diamo ora un'occhiata a un esempio che esegue il ordinamento utilizzando due colonne; il primo è ordinati in ordine ascendente per impostazione predefinita mentre la seconda colonna lo è ordinati in ordine decrescente.

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

Eseguendo lo script precedente in MySQL workbench su myflixdb fornisce i seguenti risultati.

Esempio di DESC e ASC

Per impostazione predefinita, la colonna del sesso è stata ordinata in ordine crescente, mentre la colonna della data di nascita è stata ordinata esplicitamente in ordine decrescente

Perché potremmo usare DESC e ASC?

Supponiamo di voler stampare una cronologia dei pagamenti per un membro della videoteca per rispondere alle domande della reception, non sarebbe più logico stampare i pagamenti in ordine cronologico discendente, a partire dal pagamento recente fino a quello 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 voglia ottenere un elenco di film per categoria che i membri possono utilizzare per decidere quali film sono disponibili nella libreria quando noleggiano film, non sarebbe più logico 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 torna utile in tali situazioni; possiamo ottenere l'elenco dei film ordinato per nome della categoria e titolo del film in ordine crescente.

Sommario

  • L'ordinamento dei risultati della query riorganizza 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 Dove la clausola e LIMITE
  • Il valore predefinito per ORDER BY quando non è stato specificato esplicitamente nulla è ASC.