TILAA sisään MySQL: DESC & ASC -kysely EXAMPLE:n avulla
Lajittelutulokset
SELECT-komennolla tulokset palautettiin samassa järjestyksessä kuin tietueet lisättiin tietokantaan. Tämä on oletuslajittelujärjestys. Tässä osiossa tarkastelemme, kuinka voimme lajitella kyselyn tulokset. Lajittelu on yksinkertaisesti kyselytulosten järjestämistä uudelleen tietyllä tavalla. Lajittelu voidaan suorittaa yhdelle sarakkeelle tai useammalle sarakkeelle. Se voidaan tehdä numeroille, merkkijonoille sekä päivämäärätietotyypeille.
Mikä on ORDER BY in MySQL?
MySQL TILAUS käytetään yhdessä SELECT-kyselyn kanssa tietojen lajittelemiseksi järjestyksessä. The MySQL ORDER BY -lausetta käytetään lajittelemaan kyselyn tulosjoukot joko nousevaan tai laskevaan järjestykseen.
SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
TÄÄLTÄ
- "SELECT-lause... " on tavallinen valintakysely
- ” | " edustaa vaihtoehtoja
- “[WHERE-ehto | GROUP BY "kentän_nimi(t)" HAVING-ehto" on valinnainen ehto, jota käytetään kyselyn tulosjoukkojen suodattamiseen.
- "TILAUS" suorittaa kyselyn tulosjoukon lajittelun
- "[ASC | DESC]” on avainsana, jota käytetään tulosjoukkojen lajitteluun joko nousevaan tai laskevaan järjestykseen. Huomautus ASC käytetään oletuksena.
- SELECT {fieldName(s) | *} FROM taulukon nimet on lauseke, joka sisältää kentät ja taulukot, joista tulosjoukko saadaan.
- [WHERE ehto] on valinnainen, mutta sitä voidaan käyttää tietojen suodattamiseen tietyn ehdon mukaan.
- TILAUS kentän nimi(t) on pakollinen, ja se on kenttä, jolle lajittelu suoritetaan. The MySQL DESC-avainsana määrittää, että lajittelun tulee olla laskevassa järjestyksessä.
- [RAJA] on valinnainen, mutta sitä voidaan käyttää rajoittamaan kyselyn tulosjoukosta palautettujen tulosten määrää.
Mitä ovat DESC- ja ASC-avainsanat?
Sitä käytetään lajittelemaan kyselyn tulokset ylhäältä alas -tyyliin. | Sitä käytetään lajittelemaan kyselyn tulokset alhaalta ylös -tyyliin |
Kun käsittelet päivämäärätietotyyppejä, aikaisin päivämäärä näkyy luettelon yläosassa. | . Kun käsittelet päivämäärätyyppejä, viimeisin päivämäärä näkyy luettelon päällä. |
Kun työskentelet numeeristen tietotyyppien kanssa, pienimmät arvot näkyvät luettelon yläosassa. | Kun työskentelet numeeristen tietotyyppien kanssa, suurimmat arvot näkyvät kyselyn tulosjoukon yläosassa. |
Kun työskentelet merkkijonotietotyyppien kanssa, kyselyn tulosjoukko lajitellaan A-kirjaimella alkavista kirjaimeen Z asti. | Kun työskentelet merkkijonotietotyyppien kanssa, kyselyn tulosjoukko lajitellaan Z-kirjaimella alkavista tuloksista A-kirjaimeen. |
Sekä SQL DESC- että ASC-avainsanoja käytetään yhdessä SELECT-käskyn ja -käskyn kanssa MySQL TILAA lausekkeen mukaan.
DESC- ja ASC-syntaksi
SQL DESC -lajitteluavainsanalla on seuraava perussyntaksi.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
TÄÄLTÄ
Esimerkkejä:
Katsotaanpa nyt käytännön esimerkkiä -
SELECT * FROM members;
Suoritetaan yllä oleva komentosarja MySQL työpenkki myflixdb:tä vastaan antaa meille seuraavat alla näkyvät tulokset.
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 |
Oletetaan, että markkinointiosasto haluaa jäsenten tiedot alenevassa järjestyksessä syntymäajan mukaan. Tämä auttaa heitä lähettämään syntymäpäivätervehdyksiä ajoissa. Saamme mainitun luettelon suorittamalla alla olevan kyselyn -
SELECT * FROM members ORDER BY date_of_birth DESC;
Suoritetaan yllä oleva komentosarja MySQL työpenkki myflixdb:tä vastaan antaa meille seuraavat alla näkyvät tulokset.
Sama kysely nousevassa järjestyksessä
SELECT * FROM jäsenistä ORDER BY syntymäpäivämäärän ASC
Huomautus: NULL-arvot tarkoittavat, että arvoja ei ole (ei nollaa tai tyhjää merkkijonoa). Tarkkaile tapaa, jolla ne on lajiteltu.
Lisää esimerkkejä
Tarkastellaan seuraavaa SQL-lajittelua komentosarjan mukaan, joka luettelee kaikki jäsentietueet.
SELECT * FROM `members`;
Yllä olevan skriptin suorittaminen antaa seuraavat alla näkyvät tulokset.
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 |
Oletetaan, että haluamme saada luettelon, joka lajittelee kyselyn tulosjoukon sukupuolikentän avulla, käyttäisimme alla näkyvää komentosarjaa.
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 |
"Naisjäsenet" on esitetty ensin ja sen jälkeen "mies" -jäsenet, tämä johtuu siitä, että kun ORDER BY DESC -lausetta käytetään määrittelemättä ASC- tai MySQL DESC-avainsana oletuksena MySQL on lajitellut kyselyn tulosjoukon nousevaan järjestykseen.
Katsotaanpa nyt esimerkkiä, joka tekee lajittelu kahdella sarakkeella; ensimmäinen on lajiteltu in nousevassa järjestyksessä oletuksena, kun toinen sarake on lajiteltu in laskeva järjestys.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Suoritetaan yllä oleva komentosarja MySQL työpenkki myflixdb:tä vastaan antaa seuraavat tulokset.
Sukupuolisarake lajiteltiin oletusarvoisesti nousevaan järjestykseen, kun taas syntymäaikasarake lajitellaan eksplisiittisesti laskevaan järjestykseen
Miksi saatamme käyttää DESC:tä ja ASC:tä?
Oletetaan, että haluamme tulostaa videokirjaston jäsenen maksuhistorian vastataksemme vastaanoton kyselyihin, eikö olisi loogisempaa tulostaa maksut laskevassa kronologisessa järjestyksessä alkaen viimeisestä maksusta aiempaan maksuun?
DESC SQL:ssä on avainsana, josta tulee kätevä tällaisissa tilanteissa. Voimme kirjoittaa kyselyn, joka lajittelee listan laskevaan järjestykseen maksupäivän mukaan.
Oletetaan, että markkinointiosasto haluaa saada luettelon elokuvista luokittain, jonka avulla jäsenet voivat päättää, mitkä elokuvat ovat saatavilla kirjastossa vuokrattaessa elokuvia, eikö olisi loogisempaa lajitella elokuvakategorian nimet ja otsikot nousevaan järjestykseen. voivatko jäsenet nopeasti etsiä tiedot luettelosta?
ASC-avainsana on hyödyllinen tällaisissa tilanteissa; voimme saada elokuvaluettelon lajiteltuna luokan nimen ja elokuvan nimen mukaan nousevassa järjestyksessä.
Yhteenveto
- Kyselytulosten lajittelu tarkoittaa kyselyn tulosjoukosta palautettujen rivien uudelleenjärjestelyä joko nousevaan tai laskevaan järjestykseen.
- SQL:n avainsanaa DESC käytetään lajittelemaan kyselyn tulosjoukko laskevaan järjestykseen.
- ASC-avainsanaa käytetään lajittelemaan kyselyn tulosjoukko nousevaan järjestykseen.
- Sekä DESC että ASC toimivat yhdessä ORDER BY -avainsanan kanssa. Niitä voidaan käyttää myös yhdessä muiden avainsanojen, kuten WHERE-lauseke ja LIMIT
- ORDER BY:n oletusarvo, kun mitään ei ole erikseen määritetty, on ASC.