BESTILL INNEN MySQL: DESC & ASC Query med EKSEMPEL

Sortering av resultater

Ved å bruke SELECT-kommandoen ble resultatene returnert i samme rekkefølge som postene ble lagt til i databasen. Dette er standard sorteringsrekkefølge. I denne delen skal vi se på hvordan vi kan sortere søkeresultatene våre. Sortering er ganske enkelt å omorganisere søkeresultatene våre på en bestemt måte. Sortering kan utføres på en enkelt kolonne eller på mer enn én kolonne. Det kan gjøres på tall, strenger samt datodatatyper.

Hva er ORDER BY in MySQL?

MySQL REKKEFØLGE ETTER brukes sammen med SELECT-spørringen for å sortere data på en ryddig måte. De MySQL ORDER BY-leddet brukes til å sortere søkeresultatsettene i enten stigende eller synkende rekkefølge.

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

HER

  • "SELECT-setning... " er det vanlige utvalgsspørsmålet
  • "| " representerer alternativer
  • “[HVOR tilstand | GRUPPER ETTER `field_name(s)` HAVING condition” er den valgfrie betingelsen som brukes til å filtrere søkeresultatsettene.
  • "BESTILL ETTER" utfører sortering av søkeresultatsett
  • "[ASC | DESC]” er nøkkelordet som brukes til å sortere resultatsett i enten stigende eller synkende rekkefølge. Note ASC brukes som standard.
  • Hva er DESC- og ASC-nøkkelord?

    DESC og ASC nøkkelordASC er den korte formen for stigende DESC og ASC nøkkelordMySQL DESC er den korte formen for synkende
    Den brukes til å sortere søkeresultatene i en topp til bunn-stil. Den brukes til å sortere søkeresultatene i en bunn til topp-stil
    Når du arbeider med datodatatyper, vises den tidligste datoen øverst på listen. . Når du arbeider med datotyper, vises siste dato øverst på listen.
    Når du arbeider med numeriske datatyper, vises de laveste verdiene øverst på listen. Når du arbeider med numeriske datatyper, vises de høyeste verdiene øverst i søkeresultatsettet.
    Når du arbeider med strengdatatyper, sorteres søkeresultatsettet fra de som begynner med bokstaven A som går opp til bokstaven Z. Når du arbeider med strengdatatyper, sorteres søkeresultatsettet fra de som begynner med bokstaven Z og går ned til bokstaven A.

    Både SQL DESC og ASC nøkkelord brukes sammen i forbindelse med SELECT-setningen og MySQL ORDER BY klausul.


    DESC og ASC syntaks

    SQL DESC sorteringsnøkkelordet har følgende grunnleggende syntaks.

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

    HER

    • VELG {feltnavn(e) | *} FRA tabellnavn(e) er setningen som inneholder feltene og tabellen(e) som resultatsettet skal hentes fra.
    • [WHERE-tilstand] er valgfritt, men kan brukes til å filtrere dataene i henhold til den gitte betingelsen.
    • REKKEFØLGE ETTER feltnavn(e) er obligatorisk og er feltet som sorteringen skal utføres på. De MySQL DESC nøkkelord angir at sorteringen skal være i synkende rekkefølge.
    • [GRENSE] er valgfritt, men kan brukes til å begrense antall resultater som returneres fra søkeresultatsettet.

    Eksempler:

    La oss nå se på et praktisk eksempel –

    SELECT * FROM members;

    Utfører skriptet ovenfor i MySQL arbeidsbenk mot myflixdb gir oss 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


La oss anta at markedsavdelingen vil ha medlemsopplysningene ordnet i synkende rekkefølge etter fødselsdato. Dette vil hjelpe dem med å sende bursdagshilsener i tide. Vi kan få den nevnte listen ved å utføre en spørring som nedenfor -

SELECT * FROM members ORDER BY date_of_birth DESC;

Utfører skriptet ovenfor i MySQL arbeidsbenk mot myflixdb gir oss følgende resultater vist nedenfor.

DESC og ASC eksempel

Samme spørring i stigende rekkefølge

VELG * FRA medlemmer BESTILL ETTER fødselsdato ASC

DESC og ASC eksempel

Merk: NULL-verdier betyr ingen verdier (ikke null eller tom streng) . Observer måten de er sortert på.

Flere eksempler

La oss vurdere følgende SQL sortering etter skript som viser alle medlemspostene.

SELECT * FROM `members`;

Utførelse av skriptet ovenfor gir 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


Anta at vi ønsker å få en liste som sorterer søkeresultatsettet ved å bruke kjønnsfeltet, vil vi bruke skriptet 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

"Kvinnelige" medlemmer har blitt vist først etterfulgt av "mannlige" medlemmer, dette er fordi når ORDER BY DESC-klausulen brukes uten å spesifisere ASC eller MySQL DESC nøkkelord, som standard, MySQL har sortert søkeresultatsettet i stigende rekkefølge.

La oss nå se på et eksempel som gjør det sortering ved hjelp av to kolonner; den første er sortert in stigende rekkefølge som standard mens den andre kolonnen er sortert in synkende rekkefølge.

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

Utfører skriptet ovenfor i MySQL arbeidsbenk mot myflixdb gir følgende resultater.

DESC og ASC eksempel

Kjønnskolonnen ble sortert i stigende rekkefølge som standard, mens fødselsdatokolonnen ble sortert eksplisitt i synkende rekkefølge

Hvorfor kan vi bruke DESC og ASC?

Tenk deg at vi ønsker å skrive ut en betalingshistorikk for et videobibliotekmedlem for å svare på spørsmål fra resepsjonen, ville det ikke vært mer logisk å få betalingene skrevet ut i synkende kronologisk rekkefølge fra den siste betalingen til den tidligere betalingen?

DESC i SQL er et nøkkelord som blir nyttig i slike situasjoner. Vi kan skrive en spørring som sorterer listen i synkende rekkefølge ved å bruke betalingsdatoen.

Tenk deg at markedsavdelingen ønsker å få en liste over filmer etter kategori som medlemmene kan bruke til å bestemme hvilke filmer som er tilgjengelige i biblioteket når de leier filmer, ville det ikke vært mer logisk å sortere filmkategorinavnene og tittelen i stigende grad. kan medlemmer raskt slå opp informasjonen fra listen?

ASC-nøkkelordet kommer godt med i slike situasjoner; vi kan få filmlisten sortert etter kategorinavn og filmtittel i stigende rekkefølge.

Sammendrag

  • Sortering av søkeresultater er å omorganisere radene som returneres fra et søkeresultatsett, enten i stigende eller synkende rekkefølge.
  • Nøkkelordet DESC i SQL brukes til å sortere søkeresultatsettet i synkende rekkefølge.
  • ASC-nøkkelordet brukes til å sortere søkeresultatsettet i stigende rekkefølge.
  • Både DESC og ASC fungerer sammen med nøkkelordet ORDER BY. De kan også brukes i kombinasjon med andre søkeord som f.eks HVOR klausul og LIMIT
  • Standard for ORDER BY når ingenting er eksplisitt spesifisert er ASC.

Oppsummer dette innlegget med: