BESTIL I: MySQL: DESC & ASC-spørring med EXAMPLE

Innholdsfortegnelse:

Anonim

Sorteringsresultater

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 vil vi se på hvordan vi kan sortere søkeresultatene våre. Sortering er ganske enkelt å omorganisere våre søkeresultater på en spesifisert måte. Sortering kan utføres på en enkelt kolonne eller på mer enn en kolonne. Det kan gjøres på antall, strenger samt datatypetyper.

Hva er ORDER BY i MySQL?

MySQL ORDER BY brukes sammen med SELECT-spørringen for å sortere data på en ordnet måte. MySQL ORDER BY-leddet brukes til å sortere søkeresultatsettene i 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 statement ..." er det vanlige select-spørringen
  • "|" representerer alternativer
  • "[WHERE condition | GROUP BY` field_name (s) `HAVING condition" er den valgfrie tilstanden som brukes til å filtrere søkeresultatsettene.
  • "ORDER BY" utfører sorteringen av søkeresultatsett
  • "[ASC | DESC]" er nøkkelordet som brukes til å sortere resultatsett i enten stigende eller synkende rekkefølge. Merk ASC brukes som standard.

Hva er DESC- og ASC-nøkkelord?

ASC er kortform for stigning

MySQL DESC er det korte skjemaet for nedstigning

Den brukes til å sortere søkeresultatene i en topp til bunn-stil.

Den brukes til å sortere søkeresultatene i bunn til topp stil

Når du arbeider med datatypetyper, vises den tidligste datoen øverst på listen.

. Når du arbeider med datatyper, vises den siste datoen ø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 spørringsresultatsettet.

Når du jobber med strengdatatyper, sorteres spørringsresultatsettet fra de som begynner med bokstaven A og går opp til bokstaven Z.

Når du arbeider med strengdatatyper, sorteres spørringsresultatsettet 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-ledd.

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 (er) | *} FRA tabellnavn (er) er utsagnet som inneholder feltene og tabellene du skal få resultatsettet fra.
  • [WHERE condition] er valgfritt, men kan brukes til å filtrere dataene i henhold til den gitte tilstanden.
  • ORDER BY feltnavn (er) er obligatorisk og er feltet som sorteringen skal utføres på. MySQL DESC-nøkkelordet spesifiserer at sorteringen skal være i synkende rekkefølge.
  • [LIMIT] 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øre 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 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

La oss anta at markedsavdelingen ønsker at medlemsopplysningene ordnes i avtagende rekkefølge etter fødselsdato. Dette vil hjelpe dem med å sende bursdagshilsener i tide. Vi kan få den nevnte listen ved å utføre et spørsmål som nedenfor -

SELECT * FROM members ORDER BY date_of_birth DESC;

Å utføre skriptet ovenfor i MySQL arbeidsbenk mot myflixdb gir oss følgende resultater vist nedenfor.

Den samme spørringen i stigende rekkefølge

VELG * FRA medlemmER BESTIL EFTER dato_av_fødsel ASC

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 skript som viser alle medlemsoppføringene.

SELECT * FROM `members`;

Å utføre ovenstående skript 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 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

Anta at vi ønsker å få en liste som sorterer spørringsresultatsettet ved hjelp av kjønnsfeltet, vi bruker 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 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

"Kvinne" -medlemmer har blitt vist først etterfulgt av "Mannlige" -medlemmer, dette er fordi når ORDER BY DESC-ledd brukes uten å spesifisere ASC- eller MySQL DESC-nøkkelordet, har MySQL som standard sortert spørringsresultatet satt i stigende rekkefølge.

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

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

Å utføre skriptet ovenfor i MySQL arbeidsbenk mot myflixdb gir følgende resultater.

Kjønnskolonnen ble sortert i stigende rekkefølge som standard mens fødselsdatoen ble sortert i fallende rekkefølge eksplisitt

Hvorfor kan vi bruke DESC og ASC?

Anta at vi vil skrive ut en betalingshistorikk for et videobiblioteksmedlem for å svare på spørsmål fra resepsjonen. Ville det ikke være mer logisk å ha betalinger skrevet ut i en synkende kronologisk rekkefølge fra og med den siste betalingen til den tidligere betalingen?

DESC i SQL er et nøkkelord som blir nyttig i slike situasjoner. Vi kan skrive et spørsmål som sorterer listen i synkende rekkefølge ved hjelp av betalingsdatoen.

Anta 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ære mer logisk å se sortere filmkategorinavn og tittel i stigende retning slik at medlemmer raskt kan 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økeresultat, enten i stigende eller synkende rekkefølge.
  • Nøkkelordet DESC i SQL brukes til å sortere søkeresultatet i fallende rekkefølge.
  • ASC-nøkkelordet brukes til å sortere søkeresultatsettet i stigende rekkefølge.
  • Både DESC og ASC fungerer sammen med søkeordet ORDER BY. De kan også brukes i kombinasjon med andre nøkkelord som WHERE-ledd og LIMIT
  • Standard for ORDER BY når ingenting eksplisitt er spesifisert, er ASC.