Tovább az úton...
A Python tananyagunk több új fejezettel bővült, amelyben új hasznos modulokkal ismerkedünk meg. Jó tanulást!

<info9>

Eredmények rendezése – az ORDER BY kulcsszó

Elkélne a segítség?

Ha úgy érzed, hogy elakadtál, és több segítségre van szükséged, keress bizalommal! Kedvező árú magánórák keretében szívesen segítek elsajátítani a programozás alapjait.

Magánóra ajánlatok

Adatok lekérdezésekor sokszor azt is meg szeretnénk szabni, hogy a lekérdezett információk milyen sorrendbe rendezve jelenjenek meg. Gondoljunk akár csak egy osztálynévsorra, amit például betűrendben szeretnénk megkapni, vagy éppen a diákok átlagára, csökkenő sorrendben.

Rendezésre mindig 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 irányát azonban manuálisan is megadhatjuk. Az ASC kulcsszó növekvő sorrendet (vagy szövegek esetén betűrendet), a DESC pedig csökkenő sorrendet (vagy szövegek esetén fordított betűrendet) jelent:

SELECT `iskola`, `kodjel` FROM `nevezo` ORDER BY `kodjel` ASC

Nevezők kódjel szerint növekvő sorrendben (kipróbálom)

SELECT `iskola`, `kodjel` FROM `nevezo` ORDER BY `kodjel` DESC

Nevezők kódjel szerint csökkenő sorrendben (kipróbálom)

Többszintű rendezés

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` 

Rendezés kategória szerint növekvő, azon belül pedig kódjel szerint növekvő sorrendbe (kipróbálom)

SELECT `iskola`, `kodjel`, `kategoria` FROM `nevezo` ORDER BY `kategoria`, `kodjel` DESC

Rendezés kategória szerint növekvő, azon belül pedig kódjel szerint csökkenő sorrendbe (kipróbálom)

SELECT `iskola`, `kodjel`, `kategoria` FROM `nevezo` ORDER BY `kategoria` DESC, `kodjel` ASC

Rendezés kategória szerint csökkenő, azon belül pedig kódjel szerint növekvő sorrendbe (kipróbálom)

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: