Eredmények rendezése – az ORDER BY kulcsszó
A tavaszi C# alapozó bootcampünk tananyagait továbbra is megvásárolhatod! Bár az élő előadásokon már túl vagyunk, az összes előadás anyaga továbbra is visszanézhető!
Irány a bootcampAdatok lekérdezésekor sokszor azt is meg szeretnénk szabni, hogy a lekérdezett információk milyen sorrendbe rendezve jelenjenek meg. Erre az ORDER BY kulcsszót használhatjuk, amit a lekérdezések végén, a lekérdezett mezők, szűrések, összesítés, stb. után kell elhelyeznünk. Amennyiben egyszerűen egy mezőnevet adunk meg az ORDER BY után, úgy az adott mező szerint növekvő sorrendbe rendezve fogjuk megkapni az adatainkat:
SELECT `iskola`, `kodjel` FROM `nevezo` ORDER BY `kodjel`
A rendezés sorrendjét azonban manuálisan is megadhatjuk. Az ASC kulcsszó növekvő sorrendet, a DESC pedig csökkenő sorrendet jelent:
SELECT `iskola`, `kodjel` FROM `nevezo` ORDER BY `kodjel` ASC
SELECT `iskola`, `kodjel` FROM `nevezo` ORDER BY `kodjel` DESC
Természetesen több szempont szerinti rendezésre is lehetőség van, ha több oszlop nevét is felsoroljuk a lekérdezés végén. Ez azt jelenti, hogy amennyiben az elsőként felsorolt mezőben szereplő adat megegyezik két vagy több rekordban, akkor azok a második, vagy ha az is egyezik, akkor a harmadik, stb. mező alapján kerülnek sorbarendezésre:
SELECT `iskola`, `kodjel`, `kategoria` FROM `nevezo` ORDER BY `kategoria`, `kodjel`
SELECT `iskola`, `kodjel`, `kategoria` FROM `nevezo` ORDER BY `kategoria`, `kodjel` DESC
SELECT `iskola`, `kodjel`, `kategoria` FROM `nevezo` ORDER BY `kategoria` DESC, `kodjel` ASC
A rendezés a MySQL legtöbb beépített adattípusára működik, azonban körültekintőnek kell lennünk a típusok használatával, mert például szövegmezőkben tárolt számok, és egyéb nem megfelelően használt típusok esetén váratlan eredményekre juthatunk!
Próbáld ki!
Próbáld ki magad a MySQL homokozóban! Készíts néhány lekérdezést, amik rendezést igényelnek. Az alábbi feladatok mind olyan táblákra hivatkoznak, amik léteznek a homokozóban, így máris kipróbálhatod őket:
- Készíts lekérdezést, amely kilistázza a diak tábla összes diákját betűrendben (azaz nev szerint növekvő sorrendben)!
- Készíts lekérdezést, amely kilistázza a nevezo táblából az összes nevezőt iskola szerint növekvő, azon belül kódjel szerint csökkenő sorrendben!
- Készíts lekérdezést, ami kilistázza a tantargy táblából az összes tantárgyat tipus szerint, azon belül pedig név szerint növekvő sorrendben!