logo

MySQL Limit

MySQL Limit lekérdezés szokott korlátoz a sorok száma ad vissza az eredményhalmazból, nem pedig elragadó a teljes készlet a MySQL adatbázisban. A Limit záradék csak a megadott számú sor visszaadásához működik a SELECT utasítással. Ez a lekérdezés csak egy vagy két argumentumot fogad el, és ezek értékének nullának vagy tetszőleges pozitív egésznek kell lennie.

Elengedhetetlen abban az esetben, ha a táblázat több ezer sort tartalmaz, vagy csak a legutóbb beillesztett adatokat szeretnénk visszaadni. Más szóval, ha nem érdekli, hogy a lekérdezés összes sort visszaadja, használja a MySQL Limit záradékot a SELECT utasítással. Javítja a lekérdezés teljesítményét, és még a rendszer összeomlását is megakadályozza, ha a táblázat nagyszámú adatot tartalmaz.

Ahhoz, hogy csak a megadott sorokat kapja meg a táblából, a MySQL a HATÁR záradék, míg az SQL a TOP záradékot, az Oracle pedig a ROWNUM záradék a KIVÁLASZTÁS nyilatkozat.

Szintaxis

Az alábbiakban bemutatjuk a Limit lekérdezés használatának szintaxisát MySQL :

 SELECT column_list FROM table_name LIMIT offset, count; 

A fenti szintaxisban a következőket láthatjuk:

Column_list: Ez annak az oszlopnak a neve, amelyet vissza szeretne adni.

Table_name: Az oszlop nevét tartalmazó tábla neve.

Eltolás: Megadja annak a sornak a számát, amelyből vissza kíván térni. A sor eltolása 0-tól kezdődik, nem 1-től.

Számol: Meghatározza a visszaküldeni kívánt sorok maximális számát.

A következő vizuális ábrázolás világosabban magyarázza ezt:

MySQL Limit

MEGJEGYZÉS: Ha csak egy argumentumot ad meg a Limit záradékkal, a MySQL ezt feltételezi, hogy meghatározza az eredményhalmaz kimenetének visszaadásához szükséges sorok maximális számát. Ebben az esetben a Limit záradék argumentumok, eltolás és a szám egyenértékű.

LIMIT záradék ORDER BY záradékkal

A felhasználónak a Limit záradékot kell használnia az Order By záradékkal együtt. Az Order By záradék használata nélkül az eredményt egy meghatározatlan sorrendben . Ebben az esetben nehéz tudni, hogy a lekérdezés melyik sorból adja vissza az eredményt. Szóval jó szokás használni Csoportosítás záradék szerint egy Limit záradékkal, amely a sorokat meghatározott sorrendben kapja meg.

A következő szintaxis használható az eredmény egyedi sorrendben történő lekéréséhez:

 SELECT column_list FROM table_name GROUP BY order_expression LIMIT offset, count; 

MySQL korlátozási példák

Hozzunk létre egy mintatáblázatot az adatbázisban, amely a következő adatokat tartalmazza, és ismerjük meg, hogyan működik a Limit záradék a MySQL-ben különböző példákon keresztül:

táblázat: alkalmazottak

MySQL Limit

1. MySQL limit a legmagasabb vagy legalacsonyabb sorok visszaadásához

A következő állítás az öt legfiatalabb alkalmazott meghatározásához használt:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

Ez az utasítás először az alkalmazottak életkorát rendezi a Group By záradék segítségével, majd a Limit záradék az első öt eredményt adja vissza. A fenti lépések végrehajtása után a következő kimenetet kapjuk:

MySQL Limit

2. MySQL Limit, hogy egy sor tartományt kapjon eltolás használatával

Néha szeretne eredményt elérni az értéktartományok között. Például nagy számú sora van az alkalmazások adatainak megjelenítéséhez, majd oldalakra bontásához, és minden oldal legfeljebb 10 sort tartalmazhat egy táblázatban. Ebben az esetben a következő lekérdezést használhatja sorok tartományának lekéréséhez:

 SELECT emp_id, emp_name, income FROM employees ORDER BY income DESC LIMIT 3,7; 

Ez az utasítás a 3. sortól kezdődő sorokat adja vissza, és legfeljebb a 7. sorig tart. Ezenkívül a munkavállaló jövedelmét a legmagasabbtól a legalacsonyabbig sorolja. Hajtsa végre a lekérdezést, és a következő kimenetet kapja:

letiltja a fejlesztői módot
MySQL Limit

3. MySQL-korlát a WHERE záradékkal

A MySQL Limit a WHERE záradékkal is használható. Először ellenőrzi a megadott feltételt a táblázatban, és előállítja a feltételnek megfelelő sorokat.

Ez a lekérdezés az első öt alkalmazottat választja ki, akiknek életkora meghaladja a 30. életévet. Itt is a Rendezés szerint záradékot használtuk, hogy az alkalmazottakat jövedelmük alapján csökkenő sorrendbe rendezzük.

 SELECT emp_name, emp_age, income FROM employees WHERE emp_age>30 ORDER BY income DESC LIMIT 5; 

A fenti utasítás sikeres végrehajtása után a következő kimenetet kapjuk:

MySQL Limit

4. MySQL LIMIT az n-edik legmagasabb vagy legalacsonyabb érték megszerzéséhez

Néha meg akarjuk kapni az n-edik legmagasabb vagy legalacsonyabb értékű sorokat. Ebben az esetben a következő MySQL LIMIT záradékot használhatjuk a várt eredmény eléréséhez:

 SELECT column_list FROM table_name ORDER BY expression LIMIT n-1, 1; 

Ebben a szintaxisban a LIMIT n-1, 1 záradék 1 sort ad vissza, amely az n sorral kezdődik.

Például a következő lekérdezés a második legmagasabb jövedelemmel rendelkező munkavállaló adatait adja vissza:

 SELECT emp_name, city, income FROM employees ORDER BY income LIMIT 1, 1; 

A fenti utasítást végrehajtva a következő lekérdezést adja:

MySQL Limit

Megjegyzendő, hogy a fenti lekérdezés csak akkor működik, ha a táblázat nem tartalmaz két olyan alkalmazottat, akiknek van némi bevételük. Ebben az esetben használjuk DENSE_RANK () hogy pontosabb eredményt kapjunk.