Rezultātu kārtošana
Izmantojot komandu SELECT, rezultāti tika atgriezti tādā pašā secībā, kā ieraksti tika pievienoti datu bāzē. Šī ir noklusējuma kārtošanas kārtība. Šajā sadaļā mēs aplūkosim, kā mēs varam kārtot vaicājumu rezultātus. Kārtošana ir vienkārši pārkārtot mūsu vaicājuma rezultātus noteiktā veidā. Šķirošanu var veikt vienā kolonnā vai vairākās kolonnās. To var izdarīt pēc skaita, virknēm, kā arī datuma datu veidiem.
Kas MySQL ir ORDER BY?
MySQL ORDER BY tiek izmantots kopā ar SELECT vaicājumu, lai kārtotu datus kārtīgi. Klauzula MySQL ORDER BY tiek izmantota, lai kārtotu vaicājuma rezultātu kopas augošā vai dilstošā secībā.
SELECT statement… [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
ŠEIT
- "SELECT priekšraksts ..." ir parasts atlases vaicājums
- "|" apzīmē alternatīvas
- "[WHERE nosacījums | GROUP BY" lauka_nosaukums (-i) "HAVING nosacījums" ir izvēles nosacījums, ko izmanto, lai filtrētu vaicājuma rezultātu kopas.
- "ORDER BY" veic vaicājuma rezultātu kopas kārtošanu
- "[ASC | DESC]" ir atslēgvārds, ko izmanto, lai kārtotu rezultātu kopas augošā vai dilstošā secībā. Piezīme ASC tiek izmantots kā noklusējums.
Kas ir DESC un ASC atslēgvārdi?
|
|
To izmanto, lai kārtotu vaicājuma rezultātus stilā no augšas uz leju. |
To izmanto, lai kārtotu vaicājuma rezultātus stilā no apakšas uz augšu |
Strādājot ar datuma datu tipiem, agrākais datums tiek parādīts saraksta augšpusē. |
. Strādājot pie datumu veidiem, saraksta augšpusē tiek parādīts pēdējais datums. |
Strādājot ar skaitliskiem datu tipiem, zemākās vērtības tiek parādītas saraksta augšpusē. |
Strādājot ar skaitliskiem datu tipiem, vislielākās vērtības tiek parādītas vaicājuma rezultātu kopas augšdaļā. |
Strādājot ar virkņu datu tipiem, vaicājuma rezultātu kopa tiek sakārtota no tiem, kas sākas ar burtu A līdz burtam Z. |
Strādājot ar virkņu datu tipiem, vaicājuma rezultātu kopa tiek sakārtota no tiem, kas sākas ar burtu Z, kas nonāk līdz A burtam. |
Gan SQL DESC, gan ASC atslēgvārdi tiek izmantoti kopā ar SELECT teikumu un klauzulu MySQL ORDER BY.
DESC un ASC sintakse
SQL DESC šķirošanas atslēgvārdam ir šāda pamata sintakse.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
ŠEIT
- SELECT {fieldName (s) | *} FROM tableName (s) ir paziņojums, kurā ir lauki un tabula (s), no kuras iegūt rezultātu kopu.
- [WHERE nosacījums] nav obligāts, taču to var izmantot, lai filtrētu datus atbilstoši norādītajam nosacījumam.
- Lauka nosaukums ORDER BY (-i) ir obligāts (-i), un tas ir lauks, kurā jāveic šķirošana. Atslēgvārds MySQL DESC norāda, ka kārtošanai jābūt dilstošā secībā.
- [LIMIT] nav obligāts, taču to var izmantot, lai ierobežotu no vaicājuma rezultātu kopas atgriezto rezultātu skaitu.
Piemēri:
Apskatīsim praktisku piemēru -
SELECT * FROM members;
Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret myflixdb dod mums šādus rezultātus, kas parādīti zemāk.
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 | 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 |
Pieņemsim, ka mārketinga nodaļa vēlas, lai dalībnieku informācija tiktu sakārtota dzimšanas datuma dilstošā secībā. Tas viņiem palīdzēs savlaicīgi nosūtīt apsveikumus dzimšanas dienā. Minēto sarakstu mēs varam iegūt, izpildot šādu vaicājumu:
SELECT * FROM members ORDER BY date_of_birth DESC;
Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret myflixdb dod mums šādus rezultātus, kas parādīti zemāk.
Tas pats vaicājums augošā secībā
ATLASIET * NO FOTO biedriem PASŪTĪT PĒC datuma_dzimšanas ASC
Piezīme: NULL vērtības nenozīmē vērtības (ne nulles vai tukšas virknes). Ievērojiet to šķirošanas veidu.
Vairāk piemēru
Apsvērsim šo skriptu, kurā uzskaitīti visi dalībnieku ieraksti.
SELECT * FROM `members`;
Izpildot iepriekš minēto skriptu, tiek parādīti šādi rezultāti, kas parādīti zemāk.
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 | 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 |
Pieņemsim, ka mēs vēlamies iegūt sarakstu, kurā tiek sakārtota vaicājuma rezultātu kopa, izmantojot lauku gender, mēs izmantotu tālāk redzamo skriptu.
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 | 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 |
Vispirms tiek parādīti dalībnieki “Sievietes”, kam seko “Vīriešu” locekļi, tas ir tāpēc, ka, ja tiek izmantota klauzula ORDER BY DESC, nenorādot ASC vai MySQL DESC atslēgvārdu, MySQL pēc noklusējuma ir sakārtojis vaicājuma rezultātu kopu augošā secībā.
Tagad aplūkosim piemēru, kas kārto, izmantojot divas kolonnas ; pirmais ir sakārtoti ar augošā secībā pēc noklusējuma, bet otrajā ailē ir sakārtoti ar dilstošā secībā.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret myflixdb dod šādus rezultātus.
Kolonna dzimums pēc noklusējuma tika sakārtota augošā secībā, bet dzimšanas datuma sleja - skaidri dilstošā secībā
Kāpēc mēs varam izmantot DESC un ASC?
Pieņemsim, ka mēs vēlamies izdrukāt video bibliotēkas dalībnieka maksājumu vēsturi, lai palīdzētu atbildēt uz reģistratūras jautājumiem, vai nebūtu loģiskāk, ja maksājumi tiktu drukāti dilstošā hronoloģiskā secībā, sākot ar neseno maksājumu iepriekšējam maksājumam?
DESC SQL ir atslēgvārds, kas šādās situācijās kļūst ērts. Mēs varam uzrakstīt vaicājumu, kas sakārto sarakstu dilstošā secībā, izmantojot maksājuma datumu.
Pieņemsim, ka mārketinga nodaļa vēlas iegūt filmu sarakstu pēc kategorijām, kuras dalībnieki var izmantot, lai izlemtu, kuras filmas ir pieejamas bibliotēkā, īrējot filmas, vai nebūtu loģiskāk meklēt filmu kategoriju nosaukumus un nosaukumus augošā secībā, lai dalībnieki var ātri meklēt informāciju no saraksta?
ASC atslēgvārds noder šādās situācijās; mēs varam iegūt filmu sarakstu sakārtotu pēc kategorijas nosaukuma un filmas nosaukuma augošā secībā.
Kopsavilkums
- Kārtojot vaicājuma rezultātus, tiek kārtotas rindas, kas atgrieztas no vaicājuma rezultātu kopas augošā vai dilstošā secībā.
- Atslēgvārds DESC SQL tiek izmantots, lai kārtotu vaicājuma rezultātu kopu dilstošā secībā.
- ASC atslēgvārds tiek izmantots, lai kārtotu vaicājuma rezultātu kopu augošā secībā.
- Gan DESC, gan ASC darbojas kopā ar atslēgvārdu ORDER BY. Tos var izmantot arī kopā ar citiem atslēgvārdiem, piemēram, WHERE klauzulu un LIMIT
- Noklusējums ORDER BY, ja nekas nav skaidri norādīts, ir ASC.