MySQL LIMIT & OFFSET példákkal

Anonim

Mi a LIMIT kulcsszó?

A limit kulcsszó korlátozza a lekérdezés eredményében visszaadott sorok számát.

A SELECT, UPDATE OR DELETE parancsokkal együtt használható a LIMIT kulcsszó szintaxisa

A LIMIT kulcsszó szintaxisa a következő

SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;

ITT

  • A "SELECT {fieldname (s) | *} FROM tableName (s)" a SELECT utasítás, amely azokat a mezőket tartalmazza, amelyeket vissza szeretnénk adni a lekérdezésünkben.
  • A "[WHERE feltétel]" opcionális, de ha van, akkor felhasználható szűrő megadására az eredményhalmazon.
  • A "LIMIT N" a kulcsszó, és N tetszőleges szám 0-tól kezdődően, 0-t adva, mivel a határérték nem ad vissza rekordokat a lekérdezésben. Ha egy 5-ös számot tesz, öt rekordot ad vissza. Ha a megadott táblázatban szereplő rekordok kisebbek, mint N, akkor a lekérdezett táblázat összes rekordját az eredményhalmaz adja vissza.

Nézzünk meg egy példát -

SELECT * FROM members LIMIT 2;
 
membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
1 Janet Jones Female 21-07-1980 NULL First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. NULL

Amint a fenti képernyőképen látható, csak két tagot adtak vissza.

Csak tíz (10) tagból álló lista beszerzése az adatbázisból

Tegyük fel, hogy szeretnénk megszerezni az első 10 regisztrált tag listáját a Myflix adatbázisból. Ennek eléréséhez a következő szkriptet használnánk.

SELECT * FROM members LIMIT 10;

A fenti parancsfájl végrehajtásával az alább látható eredményeket kapjuk

 
membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
1 Janet Jones Female 21-07-1980 NULL First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
4 Gloria Williams Female 14-02-1984 NULL 2nd Street 23 NULL NULL NULL NULL
5 Leonard Hofstadter Male NULL NULL Woodcrest NULL 845738767 NULL NULL
6 Sheldon Cooper Male NULL NULL Woodcrest NULL 976736763 NULL NULL
7 Rajesh Koothrappali Male NULL NULL Woodcrest NULL 938867763 NULL NULL
8 Leslie Winkle Male 14-02-1984 NULL Woodcrest NULL 987636553 NULL NULL
9 Howard Wolowitz Male 24-08-1981 NULL SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me NULL

Vegye figyelembe, hogy csak 9 tag érkezett vissza a lekérdezésünkbe, mivel a LIMIT záradékban szereplő N nagyobb, mint a táblázatban szereplő összes rekord száma.

Írja újra a fenti szkriptet az alábbiak szerint

SELECT * FROM members LIMIT 9;

Csak 9 sort ad vissza a lekérdezés eredményhalmazában.

Az OFF SET használata a LIMIT lekérdezésben

Az OFF SET értéket szintén leggyakrabban a LIMIT kulcsszóval együtt használják. Az OFF SET érték lehetővé teszi számunkra, hogy meghatározzuk, melyik sort kezdjük az adatok lekérésével

Tegyük fel, hogy korlátozott számú tagot akarunk szerezni a sorok közepétől kezdve, ennek eléréséhez használhatjuk a LIMIT kulcsszót az eltolás értékével együtt. Az alább látható szkript a második sortól kezdve kap adatokat, és az eredményeket 2-re korlátozza.

SELECT * FROM `members` LIMIT 1, 2;

A fenti parancsfájl futtatása a MySQL munkapadban a myflixdb fájlhoz a következő eredményeket adja.

 
membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned

Mikor használjuk a LIMIT kulcsszót?

Tegyük fel, hogy a myflixdb tetején futó alkalmazást fejlesztjük. Rendszertervezőnk arra kért minket, hogy korlátozzuk az oldalon megjelenített rekordok számát, mondjuk oldalanként 20 rekordot a lassú betöltési idők ellensúlyozására. Hogyan járhatunk el az ilyen felhasználói követelményeknek megfelelő rendszer bevezetésével? A LIMIT kulcsszó jól jön ilyen helyzetekben. A lekérdezésből visszaküldött eredményeket csak oldalanként 20 rekordra korlátozhatnánk.

Összegzés

  • A (z) LIMIT kulcsszó korlátozza az eredményhalmazból visszaküldött sorok számát.
  • A LIMIT szám bármely szám lehet nullától (0) felfelé haladva. Ha nulla (0) van megadva határértékként, az eredményhalmazból egyetlen sor sem jelenik meg.
  • Az OFF SET érték lehetővé teszi számunkra, hogy meghatározzuk, melyik sort kezdjük az adatok lekérésével
  • A SELECT, UPDATE OR DELETE parancsokkal együtt használható a LIMIT kulcsszó szintaxisa