MySQL LIMIT & OFFSET s příklady

Anonim

Co je klíčové slovo LIMIT?

Klíčové slovo limit se používá k omezení počtu řádků vrácených ve výsledku dotazu.

Lze jej použít ve spojení se syntaxí klíčových slov příkazy SELECT, UPDATE NEBO DELETE

Syntaxe klíčového slova LIMIT je následující

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

TADY

  • „SELECT {fieldname (s) | *} FROM tableName (s)“ je příkaz SELECT obsahující pole, která bychom chtěli vrátit v našem dotazu.
  • „[WHERE podmínka]“ je volitelná, ale pokud je zadána, lze ji použít k určení filtru v sadě výsledků.
  • „LIMIT N“ je klíčové slovo a N je libovolné číslo začínající od 0, hodnota 0 jako limit nevrací žádné záznamy v dotazu. Pokud dáte číslo, řekněme 5, vrátí se pět záznamů. Pokud jsou záznamy v zadané tabulce menší než N, vrátí se všechny záznamy z dotazované tabulky v sadě výsledků.

Podívejme se na příklad -

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

Jak vidíte na výše uvedeném snímku obrazovky, byli vráceni pouze dva členové.

Získání seznamu deseti (10) členů pouze z databáze

Předpokládejme, že chceme získat seznam prvních 10 registrovaných členů z databáze Myflix. K dosažení tohoto cíle bychom použili následující skript.

SELECT * FROM members LIMIT 10;

Provedení výše uvedeného skriptu nám poskytne výsledky uvedené níže

 
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

Poznámka: v našem dotazu bylo vráceno pouze 9 členů, protože N v klauzuli LIMIT je větší než počet celkových záznamů v naší tabulce.

Přepište výše uvedený skript následujícím způsobem

SELECT * FROM members LIMIT 9;

Vrací pouze 9 řádků v naší sadě výsledků dotazu.

Použití OFF SET v dotazu LIMIT

Hodnota OFF SET se také nejčastěji používá společně s klíčovým slovem LIMIT. Hodnota OFF SET nám umožňuje určit, který řádek má začít od načítání dat

Předpokládejme, že chceme získat omezený počet členů počínaje od středu řádků, abychom toho dosáhli, můžeme použít klíčové slovo LIMIT společně s hodnotou offsetu. Skript zobrazený níže získá data od druhého řádku a omezí výsledky na 2.

SELECT * FROM `members` LIMIT 1, 2;

Provedení výše uvedeného skriptu v pracovní ploše MySQL proti myflixdb poskytuje následující výsledky.

 
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

Kdy bychom měli použít klíčové slovo LIMIT?

Předpokládejme, že vyvíjíme aplikaci, která běží nad myflixdb. Náš návrhář systému nás požádal, abychom omezili počet záznamů zobrazených na stránce, abychom řekli 20 záznamů na stránku, abychom zabránili pomalému načítání. Jak postupujeme při zavádění systému, který splňuje takové požadavky uživatelů? V takových situacích se klíčové slovo LIMIT hodí. Byli bychom schopni omezit výsledky vrácené z dotazu pouze na 20 záznamů na stránku.

souhrn

  • Klíčové slovo LIMIT of se používá k omezení počtu řádků vrácených ze sady výsledků.
  • LIMITNÍ číslo může být libovolné číslo od nuly (0) směřující nahoru. Když je jako limit zadána nula (0), ze sady výsledků se nevrátí žádné řádky.
  • Hodnota OFF SET nám umožňuje určit, který řádek má začít od načítání dat
  • Lze jej použít ve spojení se syntaxí klíčových slov příkazy SELECT, UPDATE NEBO DELETE