Visszatérés korlátozása a LIMIT kulcsszóval
Most, hogy belevágtál a programozásba, jól jönne egy olcsó webtárhely? A SzerverPlex kedvező árú cPanel tárhelyeit most 5% kedvezménnyel igénybeveheted, és ezzel az info9 fennmaradását is támogatod.
Kattints a gombra, majd a csomag kiválasztása után aktiváld az INFO9 kuponkódot a fizetés előtt.
Szerzek webtárhelyet!Bár általában minden adatot szeretnénk kinyerni az adatbázisunkból, előfordulhat olyan helyzet is, hogy csak az első néhány sorra van szükségünk. Például egy eredményhirdetés során előfordulhat, hogy csak az 5 legjobb eredményt elérő ember nevét, és pontszámát szeretnénk megjeleníteni, de akár az is előfordulhat, hogy egy lapozható listához lenne szükségünk kizárólag az adatok egy részére, amik az adott oldalon meg fognak jelenni.
Erre a LIMIT kulcsszót használhatjuk. Fontos azonban, hogy ha konzisztens eredményre szeretnénk jutni, akkor a LIMIT kulcsszót csak akkor használjuk, ha az adatok rendezéséről is gondoskodtunk, különben nem lehetünk biztosak abban, hogy a megfelelő néhány sort látjuk majd. Tekinthetjük tehát egyfajta íratlan szabálynak, hogy a LIMIT-et mindig az ORDER BY-al együtt érdemes használni.
Amennyiben a LIMIT-nek megadunk egy számot, az meghatározza, hogy az első hány darab rekordot szeretnénk megjeleníteni. Kérjük le például az adatbázisunkból az első 5 nevező kódjelét:
SELECT `iskola`, `kodjel` FROM `nevezo` ORDER BY `kodjel` ASC LIMIT 5
Próbáld ki és módosítsd a homokozóban! Amennyiben nem az első néhány rekordra van szükségünk, hanem mondjuk a 11.-15. diákok kódjelét szeretnénk megkapni, erre is lehetőségünk van, ha a LIMITet kiegészítjük az OFFSET kulcsszóval, ami meghatározza, hogy hány sort szeretnénk “kihagyni”, átugrani a találatok elején. Mivel a 11. diák az első amikre kíváncsiak vagyunk, az első 10 diákot át kell lépnünk, majd utána szeretnénk 5 diáknyi adatot megjeleníteni:
SELECT `iskola`, `kodjel` FROM `nevezo` ORDER BY `kodjel` ASC LIMIT 5 OFFSET 10
Ezt a kifejezést le is egyszerűsíthetjük, elegendő az OFFSET kulcsszó használata helyett felsorolnunk vesszővel elválasztva a két értéket. Figyeljünk azonban rá, hogy ez esetben az offset értéke kerül előre, és mögé a limit értéke, azaz a két szám helyet cserél!!! A fenti példa alapján tehát:
SELECT `iskola`, `kodjel` FROM `nevezo` ORDER BY `kodjel` ASC LIMIT 10, 5