MySQL LIMIT & OFFSET s příklady

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ého slova LIMIT příkazů SELECT, UPDATE OR DELETE

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

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

ZDE

  • “SELECT {název pole | *} FROM tableName(s)” je příkaz SELECT obsahující pole, která bychom chtěli v našem dotazu vrátit.
  • “[KDE podmínka]” je volitelný, ale pokud je dodán, lze jej 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, přičemž 0 jako limit nevrátí žádné záznamy v dotazu. Zadáním čísla řekněme 5 vrátíte pět záznamů. Pokud jsou záznamy v zadané tabulce menší než N, pak jsou ve výsledkové sadě vráceny všechny záznamy z dotazované tabulky.

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 janetjones@yagoo.cm NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL jj@fstreet.com NULL

Jak můžete vidět z výše uvedeného 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 tomu bychom použili následující skript.

SELECT *  FROM members LIMIT 10;

Spuštění 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 janetjones@yagoo.cm NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL jj@fstreet.com NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 rm@tstreet.com 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

Všimněte si, že 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ásledovně

SELECT *  FROM members LIMIT 9;

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

Použití OFF SET v dotazu LIMIT

Jedno OFF SET value 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 s načítáním dat

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

SELECT * FROM `members` LIMIT 1, 2;

Spuštění výše uvedeného skriptu v MySQL workbench proti myflixdb dává 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 jj@fstreet.com NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 rm@tstreet.com 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áš systémový návrhář nás požádal, abychom omezili počet záznamů zobrazených na stránce na řekněme 20 záznamů na stránku, abychom zabránili pomalému načítání. Jak postupujeme při implementaci systému, který splňuje takové požadavky uživatelů? Klíčové slovo LIMIT se v takových situacích hodí. Výsledky vrácené z dotazu bychom mohli omezit pouze na 20 záznamů na stránku.

Shrnutí

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