logo

Limit MySQL

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:

Limit MySQL

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

Limit MySQL

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:

Limit MySQL

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
Limit MySQL

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:

Limit MySQL

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:

Limit MySQL

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.