RENDELÉS BE MySQL: DESC & ASC lekérdezés EXAMPLE-vel
Eredmények rendezése
A SELECT paranccsal az eredmények ugyanabban a sorrendben kerültek visszaadásra, ahogyan a rekordokat hozzáadtuk az adatbázishoz. Ez az alapértelmezett rendezési sorrend. Ebben a részben azt nézzük meg, hogyan rendezhetjük a lekérdezés eredményeit. A rendezés egyszerűen a lekérdezés eredményeinek meghatározott módon történő átrendezését jelenti. A rendezés elvégezhető egyetlen oszlopon vagy több oszlopon is. Megtehető számokra, karakterláncokra, valamint dátum adattípusokra.
Mi az, hogy az ORDER BY MySQL?
MySQL RENDEZÉS A SELECT lekérdezéssel együtt használatos az adatok rendezett rendezésére. A MySQL Az ORDER BY záradék a lekérdezési eredménykészletek növekvő vagy csökkenő sorrendbe rendezésére szolgál.
SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
ITT
- "SELECT utasítás... " a szokásos kiválasztási lekérdezés
- ” | " alternatívákat jelent
- „[WHERE feltétel | GROUP BY "field_name(s)" HAVING feltétel a lekérdezési eredménykészletek szűrésére használt opcionális feltétel.
- "RENDEZÉS" elvégzi a lekérdezés eredménykészletének rendezését
- „[ASC | DESC]” a kulcsszó az eredményhalmazok növekvő vagy csökkenő sorrendbe rendezésére. jegyzet ASC alapértelmezettként használatos.
- SELECT {fieldName(s) | *} FROM táblanév(ek) az az utasítás, amely tartalmazza azokat a mezőket és táblázat(oka)t, amelyekből az eredménykészlet lekérhető.
- [WHERE feltétel] opcionális, de használható az adatok adott feltétel szerinti szűrésére.
- RENDEZÉS A mezőnév(ek) kötelező, és ez az a mező, amelyen a rendezést el kell végezni. A MySQL A DESC kulcsszó megadja, hogy a rendezés csökkenő sorrendben történjen.
- [HATÁR] opcionális, de használható a lekérdezési eredménykészletből visszaadott eredmények számának korlátozására.
Mik azok a DESC és ASC kulcsszavak?
A lekérdezés eredményeinek felülről lefelé történő rendezésére szolgál. | A lekérdezés eredményeinek alulról felfelé történő rendezésére szolgál |
Amikor dátum adattípusokon dolgozik, a legkorábbi dátum jelenik meg a lista tetején. | . Amikor dátumtípusokon dolgozik, a legutolsó dátum jelenik meg a lista tetején. |
Ha numerikus adattípusokkal dolgozik, a legalacsonyabb értékek a lista tetején jelennek meg. | Ha numerikus adattípusokkal dolgozik, a legmagasabb értékek a lekérdezés eredménykészletének tetején jelennek meg. |
Karakterlánc-adattípusokkal végzett munka során a lekérdezés eredménykészlete az A betűvel kezdődőktől a Z betűig terjedő sorrendben történik. | Amikor karakterlánc-adattípusokkal dolgozik, a lekérdezés eredménykészlete a Z betűvel kezdődőtől az A betűig lefelé rendeződik. |
Mind az SQL DESC, mind az ASC kulcsszavak együtt használatosak a SELECT utasítással és a MySQL RENDELÉS záradék szerint.
DESC és ASC szintaxis
Az SQL DESC rendezési kulcsszó a következő alapvető szintaxissal rendelkezik.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
ITT
Példák:
Nézzünk most egy gyakorlati példát –
SELECT * FROM members;
A fenti szkript végrehajtása MySQL munkapad a myflixdb-vel szemben a következő eredményeket adja az alábbiakban.
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 |
Tegyük fel, hogy a marketing osztály azt szeretné, hogy a tagok adatai a születési dátum szerinti csökkenő sorrendben legyenek elrendezve. Ez segít nekik időben elküldeni születésnapi üdvözletüket. Az említett listát az alábbi lekérdezés végrehajtásával kaphatjuk meg -
SELECT * FROM members ORDER BY date_of_birth DESC;
A fenti szkript végrehajtása MySQL munkapad a myflixdb-vel szemben a következő eredményeket adja az alábbiakban.
Ugyanaz a lekérdezés növekvő sorrendben
SELECT * FROM tagok ORDER BY születési_dátum ASC
Megjegyzés: A NULL értékek azt jelentik, hogy nincsenek értékek (nem nulla vagy üres karakterlánc). Figyelje meg a válogatás módját.
További példák
Tekintsük a következő SQL rendezést szkript szerint, amely felsorolja az összes tagrekordot.
SELECT * FROM `members`;
A fenti szkript végrehajtása az alábbi eredményeket adja.
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 |
Tegyük fel, hogy egy listát szeretnénk kapni, amely a gender mező segítségével rendezi a lekérdezés eredménykészletét, akkor az alább látható szkriptet használjuk.
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 |
Először a „női” tagok jelennek meg, majd a „férfi” tagok, ennek az az oka, hogy amikor az ORDER BY DESC záradékot az ASC ill. MySQL DESC kulcsszó alapértelmezés szerint MySQL növekvő sorrendbe rendezte a lekérdezés eredménykészletét.
Nézzünk most egy példát, amely a rendezés két oszlop használatával; az első az rendezve in növekvő sorrendben alapértelmezés szerint, míg a második oszlop az rendezve in csökkenő sorrend.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
A fenti szkript végrehajtása MySQL munkapad a myflixdb ellen a következő eredményeket adja.
A nem oszlop alapértelmezés szerint növekvő sorrendben, míg a születési dátum oszlop kifejezetten csökkenő sorrendben lett rendezve
Miért használhatjuk a DESC-t és az ASC-t?
Tegyük fel, hogy fizetési előzményeket szeretnénk nyomtatni egy videotár-tag számára, hogy segítsünk válaszolni a recepción feltett kérdésekre, nem lenne logikusabb, ha a kifizetéseket csökkenő időrendben nyomtatnánk ki, a legutóbbi befizetéstől a korábbi fizetésig?
A DESC az SQL-ben olyan kulcsszó, amely hasznos lehet ilyen helyzetekben. Írhatunk lekérdezést, amely a fizetési dátum alapján csökkenő sorrendbe rendezi a listát.
Tegyük fel, hogy a marketing osztály szeretné megszerezni a filmek kategóriánkénti listáját, amely alapján a tagok eldönthetik, hogy mely filmek érhetők el a könyvtárban filmkölcsönzéskor, nem lenne logikusabb, ha a filmkategóriák nevét és címét növekvő sorrendbe rendezné, hogy a tagok gyorsan kikereshetik az információkat a listáról?
Az ASC kulcsszó jól jön ilyen helyzetekben; megkaphatjuk a filmlistát kategórianév és filmcím szerint növekvő sorrendbe rendezve.
Összegzésként
- A lekérdezés eredményeinek rendezése a lekérdezési eredménykészletből visszaadott sorok növekvő vagy csökkenő sorrendbe rendezése.
- A DESC kulcsszó az SQL-ben a lekérdezés eredménykészletének csökkenő sorrendbe rendezésére szolgál.
- Az ASC kulcsszó a lekérdezés eredménykészletének növekvő sorrendbe rendezésére szolgál.
- Mind a DESC, mind az ASC az ORDER BY kulcsszóval együtt működik. Más kulcsszavakkal együtt is használhatók, mint pl WHERE záradék és LIMIT
- Az ORDER BY alapértelmezett értéke, ha semmi nincs kifejezetten megadva, az ASC.