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.
- 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.
Hva er DESC- og ASC-nøkkelord?
ASC er den korte formen for stigende |
MySQL 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
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 | |
|---|---|---|---|---|---|---|---|
| 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.
Samme spørring i stigende rekkefølge
VELG * FRA medlemmer BESTILL ETTER fødselsdato 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 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 | |
|---|---|---|---|---|---|---|---|
| 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 | |
|---|---|---|---|---|---|---|---|
| 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.
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.

ASC er den korte formen for stigende
MySQL DESC er den korte formen for synkende

