BESTIL INDEN MySQL: DESC & ASC-forespørgsel med EKSEMPEL

Sortering af resultater

Ved hjælp af SELECT-kommandoen blev resultaterne returneret i samme rækkefølge, som posterne blev tilføjet til databasen. Dette er standard sorteringsrækkefølge. I dette afsnit vil vi se på, hvordan vi kan sortere vores forespørgselsresultater. Sortering er simpelthen at omarrangere vores forespørgselsresultater på en bestemt måde. Sortering kan udføres på en enkelt kolonne eller på mere end én kolonne. Det kan gøres på tal, strenge samt datodatatyper.

Hvad er ORDER BY i MySQL?

MySQL BESTIL BY bruges sammen med SELECT-forespørgslen til at sortere data på en overskuelig måde. Det MySQL ORDER BY-udtrykket bruges til at sortere forespørgselsresultatsættene i enten stigende eller faldende rækkefølge.

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

HER

  • "SELECT erklæring... " er den almindelige valgforespørgsel
  • ” | “ repræsenterer alternativer
  • “[HVOR tilstand | GRUPPER EFTER `field_name(s)` HAVING condition” er den valgfri betingelse, der bruges til at filtrere forespørgselsresultatsættene.
  • "BEstil efter" udfører sorteringen af ​​forespørgselsresultatsættet
  • “[ASC | DESC]” er nøgleordet, der bruges til at sortere resultatsæt i enten stigende eller faldende rækkefølge. Bemærk ASC bruges som standard.
  • Hvad er DESC- og ASC-nøgleord?

    DESC og ASC nøgleordASC er den korte form for stigende DESC og ASC nøgleordMySQL DESC er den korte form for faldende
    Det bruges til at sortere forespørgselsresultaterne i en top til bund stil. Det bruges til at sortere forespørgselsresultaterne i en bund til top-stil
    Når du arbejder med datodatatyper, vises den tidligste dato øverst på listen. . Når du arbejder med datotyper, vises den seneste dato øverst på listen.
    Når du arbejder med numeriske datatyper, vises de laveste værdier øverst på listen. Når du arbejder med numeriske datatyper, vises de højeste værdier øverst i forespørgselsresultatsættet.
    Når du arbejder med strengdatatyper, sorteres forespørgselsresultatsættet fra dem, der starter med bogstavet A, der går op til bogstavet Z. Når du arbejder med strengdatatyper, sorteres forespørgselsresultatsættet fra dem, der starter med bogstavet Z, der går ned til bogstavet A.

    Både SQL DESC- og ASC-nøgleordene bruges sammen i forbindelse med SELECT-sætningen og MySQL ORDER BY klausul.


    DESC og ASC syntaks

    SQL DESC sorteringsnøgleordet har følgende grundlæggende syntaks.

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

    HER

    • VÆLG {feltnavn(e) | *} FRA tabelnavne er sætningen, der indeholder felterne og tabellerne, som resultatsættet skal hentes fra.
    • [WHERE-tilstand] er valgfri, men kan bruges til at filtrere dataene i henhold til den givne betingelse.
    • BESTIL BY feltnavn(e) er obligatoriske og er det felt, som sorteringen skal udføres på. Det MySQL DESC nøgleord angiver, at sorteringen skal være i faldende rækkefølge.
    • [BEGRÆNSE] er valgfri, men kan bruges til at begrænse antallet af resultater, der returneres fra forespørgselsresultatsættet.

    eksempler:

    Lad os nu se på et praktisk eksempel –

    SELECT * FROM members;

    Udførelse af ovenstående script i MySQL workbench mod myflixdb giver os følgende resultater vist nedenfor.

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


Lad os antage, at marketingafdelingen vil have medlemmernes detaljer arrangeret i faldende rækkefølge efter fødselsdato. Dette vil hjælpe dem med at sende fødselsdagshilsener rettidigt. Vi kan få den nævnte liste ved at udføre en forespørgsel som nedenfor -

SELECT * FROM members ORDER BY date_of_birth DESC;

Udførelse af ovenstående script i MySQL workbench mod myflixdb giver os følgende resultater vist nedenfor.

DESC og ASC eksempel

Samme forespørgsel i stigende rækkefølge

VÆLG * FRA medlemmer BESTIL EFTER fødselsdato ASC

DESC og ASC eksempel

Bemærk: NULL-værdier betyder ingen værdier (ikke nul eller tom streng) . Observer den måde, de er blevet sorteret på.

Flere eksempler

Lad os overveje følgende SQL-sortering efter script, der viser alle medlemsposter.

SELECT * FROM `members`;

Udførelse af ovenstående script giver følgende resultater vist nedenfor.

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


Antag, at vi ønsker at få en liste, der sorterer forespørgselsresultatsættet ved hjælp af kønsfeltet, ville vi bruge scriptet vist nedenfor.

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

"Kvindelige" medlemmer er blevet vist først efterfulgt af "mandlige" medlemmer, dette skyldes, at når ORDER BY DESC-klausulen bruges uden at angive ASC eller MySQL DESC nøgleord, som standard, MySQL har sorteret forespørgselsresultatsættet i stigende rækkefølge.

Lad os nu se på et eksempel, der gør det sortering ved hjælp af to kolonner; den første er sorteres in stigende rækkefølge som standard, mens den anden kolonne er sorteres in faldende rækkefølge.

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

Udførelse af ovenstående script i MySQL workbench mod myflixdb giver følgende resultater.

DESC og ASC eksempel

Kønskolonnen blev sorteret i stigende rækkefølge som standard, mens fødselsdatokolonnen blev sorteret i faldende rækkefølge eksplicit

Hvorfor kan vi bruge DESC og ASC?

Antag, at vi ønsker at udskrive en betalingshistorik for et videobiblioteksmedlem for at hjælpe med at besvare forespørgsler fra receptionen, ville det så ikke være mere logisk at få betalingerne udskrevet i en faldende kronologisk rækkefølge begyndende med den seneste betaling til den tidligere betaling?

DESC i SQL er et nøgleord, som bliver praktisk i sådanne situationer. Vi kan skrive en forespørgsel, der sorterer listen i faldende rækkefølge ved hjælp af betalingsdatoen.

Antag, at marketingafdelingen ønsker at få en liste over film efter kategori, som medlemmer kan bruge til at bestemme, hvilke film der er tilgængelige i biblioteket, når de lejer film, ville det ikke være mere logisk at sortere filmkategorinavne og -titler i stigende grad, så kan medlemmer hurtigt slå oplysningerne op fra listen?

ASC nøgleordet er praktisk i sådanne situationer; vi kan få filmlisten sorteret efter kategorinavn og filmtitel i stigende rækkefølge.

Resumé

  • Sortering af forespørgselsresultater er at omarrangere de rækker, der returneres fra et forespørgselsresultatsæt, enten i stigende eller faldende rækkefølge.
  • Nøgleordet DESC i SQL bruges til at sortere forespørgselsresultatsættet i faldende rækkefølge.
  • ASC-nøgleordet bruges til at sortere forespørgselsresultatsættet i stigende rækkefølge.
  • Både DESC og ASC fungerer sammen med nøgleordet ORDER BY. De kan også bruges i kombination med andre søgeord som f.eks WHERE-klausul og LIMIT
  • Standarden for ORDER BY, når intet eksplicit er angivet, er ASC.