UŽSAKYTI BY „MySQL“: DESC & ASC užklausa su PAVYZDŽIU

Turinys:

Anonim

Rezultatų rūšiavimas

Naudojant komandą SELECT, rezultatai buvo grąžinti ta pačia tvarka, kai įrašai buvo pridėti prie duomenų bazės. Tai yra numatytoji rūšiavimo tvarka. Šiame skyriuje mes nagrinėsime, kaip galime rūšiuoti užklausos rezultatus. Rūšiavimas paprasčiausiai pertvarko užklausos rezultatus nurodytu būdu. Rūšiuoti galima vienu stulpeliu arba daugiau nei vienu stulpeliu. Tai galima padaryti pagal skaičių, eilutes ir datos duomenų tipus.

Kas yra „ORDER BY“ sistemoje „MySQL“?

„MySQL ORDER BY “ naudojamas kartu su „SELECT“ užklausa tvarkingai rūšiuoti duomenis. Sąlyga „MySQL ORDER BY“ naudojama rūšiuojant užklausos rezultatų rinkinius didėjimo arba mažėjimo tvarka.

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

ČIA

  • „SELECT utasítás…“ yra įprasta pasirinkimo užklausa
  • "|" reiškia alternatyvas
  • "[WHERE sąlyga | GROUP BY" lauko_pavadinimas (-ai) "TURI sąlyga" yra pasirinktinė sąlyga, naudojama filtruojant užklausos rezultatų rinkinius.
  • „ORDER BY“ atlieka rūšiavimą pagal užklausos rezultatų rinkinį
  • „[ASC | DESC]“ yra raktinis žodis, naudojamas rezultatų rinkiniams rūšiuoti didėjimo arba mažėjimo tvarka. Pastaba ASC naudojamas kaip numatytasis.

Kas yra DESC ir ASC raktiniai žodžiai?

ASC yra trumpa forma kylant

„MySQL DESC“ yra trumpa forma, leidžianti nusileisti žemyn

Jis naudojamas rūšiuojant užklausos rezultatus stiliaus nuo viršaus iki apačios.

Jis naudojamas rūšiuojant užklausos rezultatus iš apačios į viršų stiliaus

Dirbant pagal datos duomenų tipus, anksčiausia data rodoma sąrašo viršuje.

. Dirbant pagal datų tipus, paskutinė data rodoma sąrašo viršuje.

Dirbant su skaitmeniniais duomenų tipais, žemiausios vertės rodomos sąrašo viršuje.

Dirbant su skaitmeniniais duomenų tipais, didžiausios vertės rodomos užklausos rezultatų rinkinio viršuje.

Dirbant su eilutės duomenų tipais, užklausos rezultatų rinkinys yra rūšiuojamas nuo tų, kurie prasideda raide A, einančiomis iki raidės Z.

Dirbant su eilutės duomenų tipais, užklausos rezultatų rinkinys yra rūšiuojamas nuo tų, kurie prasideda raide Z einant į A raidę.

Tiek SQL DESC, tiek ASC raktiniai žodžiai naudojami kartu su SELECT sakiniu ir „MySQL ORDER BY“ sąlyga.

DESC ir ASC sintaksė

SQL DESC rūšiavimo raktinis žodis turi tokią pagrindinę sintaksę.

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

ČIA

  • PASIRINKITE {fieldName (s) | *} FROM tableName (s) yra sakinys, kuriame yra laukai ir lentelė (s), iš kurių gaunamas rezultatas.
  • [WHERE sąlyga] yra neprivaloma, tačiau ją galima naudoti norint filtruoti duomenis pagal pateiktą sąlygą.
  • „ORDER BY“ lauko pavadinimas (-ai) yra privalomas (-i) ir tai yra laukas, kuriame turi būti atliekamas rūšiavimas. „MySQL DESC“ raktinis žodis nurodo, kad rūšiavimas turi vykti mažėjimo tvarka.
  • [LIMIT] yra neprivaloma, tačiau ją galima naudoti norint apriboti rezultatų, grąžintų iš užklausos rezultatų rinkinio, skaičių.

Pavyzdžiai:

Pažvelkime į praktinį pavyzdį -

SELECT * FROM members;

Minėto scenarijaus vykdymas „MySQL“ darbastalyje prieš „myflixdb“ suteikia mums šiuos rezultatus.

 
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

Tarkime, kad rinkodaros skyrius nori, kad duomenys apie narius būtų išdėstyti mažėjančia tvarka pagal Gimimo datą. Tai padės jiems laiku išsiųsti sveikinimus su gimtadieniu. Minėtą sąrašą galime gauti atlikdami tokią užklausą kaip žemiau -

SELECT * FROM members ORDER BY date_of_birth DESC;

Minėto scenarijaus vykdymas „MySQL“ darbastalyje prieš „myflixdb“ suteikia mums šiuos rezultatus.

Ta pati užklausa didėjimo tvarka

PASIRINKITE * IŠ NARIŲ UŽSAKYTI pagal gimimo ASC datą

Pastaba: NULL reikšmės nereiškia jokių verčių (ne nulinės ar tuščios eilutės). Stebėkite jų rūšiavimo būdą.

Daugiau pavyzdžių

Apsvarstykime šį scenarijų, kuriame išvardyti visi narių įrašai.

SELECT * FROM `members`;

Vykdant aukščiau pateiktą scenarijų gaunami šie rezultatai, parodyti toliau.

 
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

Tarkime, kad norime gauti sąrašą, kuriame surūšiuotas užklausos rezultatų rinkinys naudojant lyties lauką, mes naudotume žemiau pateiktą scenarijų.

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

Pirmiausia buvo rodomi „moterys“ nariai, po jų - „vyrai“. Taip yra todėl, kad naudojant sąlygą „ORDER BY DESC“ nenurodant ASC ar „MySQL DESC“ raktinio žodžio, „MySQL“ pagal numatytuosius nustatymus surūšiavo užklausos rezultatų rinkinį didėjimo tvarka.

Dabar pažvelkime į pavyzdį, kuris rūšiuoja du stulpelius ; pirmasis yra rūšiuojami į Didėjančia tvarka pagal nutylėjimą, o antrasis stulpelis rūšiuojami į mažėjančia tvarka.

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

Minėto scenarijaus vykdymas „MySQL“ darbastalyje su „myflixdb“ suteikia šiuos rezultatus.

Lyties stulpelis pagal numatytuosius nustatymus buvo surikiuotas didėjimo tvarka, o gimimo datos stulpelis - aiškiai mažėjimo tvarka.

Kodėl galime naudoti DESC ir ASC?

Tarkime, kad norime atsispausdinti vaizdo bibliotekos nario mokėjimų istoriją, kad padėtų atsakyti į registratūros klausimus, ar nebūtų logiškiau, jei mokėjimai būtų atspausdinti mažėjančia chronologine tvarka, pradedant neseniai atliktu mokėjimu į ankstesnį mokėjimą?

DESC SQL yra raktinis žodis, kuris tampa naudingas tokiose situacijose. Mes galime parašyti užklausą, kuri rūšiuoja sąrašą mažėjančia tvarka, naudodama mokėjimo datą.

Tarkime, kad rinkodaros skyrius nori gauti filmų sąrašą pagal kategorijas, pagal kuriuos nariai gali nuspręsti, kurie filmai yra bibliotekoje nuomojant filmus, ar nebūtų logiškiau žiūrėti rūšiuojant filmų kategorijų pavadinimus ir pavadinimus didėjančia tvarka, kad nariai gali greitai ieškoti informacijos iš sąrašo?

ASC raktinis žodis praverčia tokiose situacijose; filmų sąrašą galime surikiuoti pagal kategorijos pavadinimą ir filmo pavadinimą didėjimo tvarka.

Santrauka

  • Rūšiuojant užklausos rezultatus, pertvarkomos eilutės, grąžintos iš užklausos rezultatų rinkinio didėjimo arba mažėjimo tvarka.
  • SQL raktinis žodis DESC naudojamas užklausos rezultatų rinkiniui rūšiuoti mažėjimo tvarka.
  • ASC raktinis žodis naudojamas surūšiuoti užklausos rezultatų rinkinį didėjimo tvarka.
  • Tiek DESC, tiek ASC veikia kartu su raktiniu žodžiu ORDER BY. Jie taip pat gali būti naudojami kartu su kitais raktiniais žodžiais, pvz., WHERE sąlyga ir LIMIT
  • Numatytasis ORDER BY, kai nieko nėra aiškiai nurodyta, yra ASC.