MySQL Limit dotaz se používá omezit počet řádků vrácených ze sady výsledků, nikoli aportování celou sadu v databázi MySQL. Klauzule Limit funguje s příkazem SELECT pouze pro vrácení zadaného počtu řádků. Tento dotaz přijímá pouze jeden nebo dva argumenty a jejich hodnoty by měly být nula nebo jakékoli kladné celé číslo.
Je to nezbytné v takovém případě, kdy tabulka obsahuje tisíce řádků, nebo chcete vrátit pouze nedávno vložená data. Jinými slovy, pokud nemáte zájem o získání všech řádků vrácených z dotazu, použijte klauzuli MySQL Limit s příkazem SELECT. Zlepšuje výkon dotazu a dokonce zastaví pád systému, když tabulka obsahuje velké množství dat.
Chcete-li získat pouze zadané řádky z tabulky, MySQL používá OMEZIT klauzule, zatímco SQL používá HORNÍ a Oracle používá klauzuli ŘAD klauzule s VYBRAT prohlášení.
Syntax
Následuje syntaxe použití dotazu Limit v MySQL :
SELECT column_list FROM table_name LIMIT offset, count;
Ve výše uvedené syntaxi můžeme vidět:
Seznam_sloupců: Je to název sloupce, který chcete vrátit.
Table_name: Je to název tabulky, která obsahuje název vašeho sloupce.
Offset: Určuje číslo řádku, ze kterého se chcete vrátit. Posun řádku začíná od 0, nikoli od 1.
Počet: Určuje maximální počet řádků, které chcete vrátit.
Následující vizuální znázornění to vysvětluje jasněji:
POZNÁMKA: Pokud zadáte pouze jeden argument s klauzulí Limit, MySQL to předpokládá, aby určil maximální počet řádků pro vracení výstupu ze sady výsledků. V takovém případě jsou argumenty klauzule Limit, offset a počet ekvivalentní.
Klauzule LIMIT s doložkou ORDER BY
Uživatel musí použít klauzuli Limit s klauzulí Order By . Bez použití klauzule Order By dostanete výsledek v an blíže nespecifikované pořadí . V takovém případě je těžké vědět, ze kterých řádků dotaz vrací výsledek. Je tedy dobrým zvykem používat Seskupit podle klauzule s klauzulí Limit pro získání řádků v určitém pořadí.
K získání výsledku v jedinečném pořadí lze použít následující syntaxi:
SELECT column_list FROM table_name GROUP BY order_expression LIMIT offset, count;
Příklady limitů MySQL
Pojďme vytvořit ukázkovou tabulku v databázi, která obsahuje následující data, a na různých příkladech pochopíme, jak klauzule Limit funguje v MySQL:
Tabulka: zaměstnanci
1. MySQL Limit pro návrat nejvyšších nebo nejnižších řádků
Následující prohlášení se používá k získání pěti nejlepších mladších zaměstnanců:
SELECT * FROM employees ORDER BY emp_age LIMIT 5;
Tento příkaz nejprve seřadí věk zaměstnance pomocí klauzule Seskupit podle a poté klauzule Limit vrátí prvních pět výsledků. Po provedení výše uvedených kroků získáme následující výstup:
2. MySQL Limit pro získání rozsahu řádků pomocí offsetu
Někdy chcete získat výsledek mezi rozsahy hodnot. Například máte velký počet řádků k zobrazení dat o aplikacích, pak je rozdělíte na stránky a každá stránka obsahuje maximálně 10 řádků v tabulce. V takovém případě můžete pomocí následujícího dotazu získat rozsah řádků:
SELECT emp_id, emp_name, income FROM employees ORDER BY income DESC LIMIT 3,7;
Tento příkaz vrátí řádky počínaje řádkem číslo 3 a přejde maximálně do 7. řádků. Také třídí příjmy zaměstnance od nejvyšších po nejnižší. Proveďte dotaz a získáte následující výstup:
příkaz autocad stretch
3. MySQL Limit s klauzulí WHERE
MySQL Limit lze také pracovat s klauzulí WHERE. Nejprve zkontroluje zadanou podmínku v tabulce a vytvoří řádky, které podmínce odpovídají.
Tento dotaz vybere prvních pět zaměstnanců, jejichž věk je vyšší než 30. Zde jsme také použili klauzuli Order By k seřazení zaměstnanců v sestupném pořadí podle jejich příjmu.
SELECT emp_name, emp_age, income FROM employees WHERE emp_age>30 ORDER BY income DESC LIMIT 5;
Po úspěšném provedení výše uvedeného příkazu získáme následující výstup:
4. MySQL LIMIT pro získání n-té nejvyšší nebo nejnižší hodnoty
Někdy chceme získat řádky n-té nejvyšší nebo nejnižší hodnoty. V takovém případě můžeme k získání očekávaného výsledku použít následující klauzuli MySQL LIMIT:
SELECT column_list FROM table_name ORDER BY expression LIMIT n-1, 1;
V této syntaxi klauzule LIMIT n-1, 1 vrací 1 řádek, který začíná na řádku n.
Například následující dotaz vrátí informace o zaměstnanci, který má druhý nejvyšší příjem:
SELECT emp_name, city, income FROM employees ORDER BY income LIMIT 1, 1;
Po provedení výše uvedeného příkazu se zobrazí následující dotaz:
Je třeba poznamenat, že výše uvedený dotaz funguje pouze tehdy, když vaše tabulka neobsahuje dva zaměstnance, kteří mají nějaký příjem. V tom případě použijeme DENSE_RANK () abyste získali přesnější výsledek.