logo

Limite MySQL

A consulta MySQL Limit é usada para restringir o número de linhas retorna do conjunto de resultados, em vez de buscando todo o conjunto no banco de dados MySQL. A cláusula Limit funciona com a instrução SELECT para retornar apenas o número especificado de linhas. Esta consulta aceita apenas um ou dois argumentos e seus valores devem ser zero ou qualquer número inteiro positivo.

É essencial neste caso quando a tabela contém milhares de linhas ou quando você deseja retornar apenas os dados inseridos recentemente. Em outras palavras, se você não estiver interessado em obter todas as linhas retornadas da consulta, use a cláusula MySQL Limit com a instrução SELECT. Melhora o desempenho da consulta e até deixa de travar o sistema quando a tabela contém um grande número de dados.

Para obter apenas as linhas especificadas da tabela, o MySQL usa o LIMITE cláusula, enquanto o SQL usa a cláusula PRINCIPAL cláusula, e a Oracle usa a cláusula ROWNUM cláusula com o SELECIONAR declaração.

Sintaxe

A seguir está a sintaxe do uso da consulta Limit em MySQL :

 SELECT column_list FROM table_name LIMIT offset, count; 

Na sintaxe acima, podemos ver:

Lista_colunas: É o nome da coluna que você deseja retornar.

Nome da tabela: É o nome da tabela que contém o nome da sua coluna.

Desvio: Especifica o número de uma linha da qual você deseja retornar. O deslocamento da linha começa em 0, não em 1.

Contar: Ele especifica o número máximo de linhas que você deseja retornar.

A seguinte representação visual explica isso mais claramente:

Limite MySQL

NOTA: Se você especificar apenas um argumento com a cláusula Limit, o MySQL assumirá isso para determinar o número máximo de linhas para retornar a saída do conjunto de resultados. Nesse caso, os argumentos da cláusula Limit, o deslocamento e a contagem são equivalentes.

Cláusula LIMIT com cláusula ORDER BY

O usuário precisa usar a cláusula Limit com a cláusula Order By. Sem usar a cláusula Order By, você obterá o resultado em um pedido não especificado . Nesse caso, é difícil saber o resultado dos retornos da consulta de quais linhas. Então, é um bom hábito usar Cláusula Agrupar por com uma cláusula Limit para obter as linhas em uma ordem específica.

A seguinte sintaxe pode ser usada para obter o resultado em uma ordem única:

 SELECT column_list FROM table_name GROUP BY order_expression LIMIT offset, count; 

Exemplos de limites do MySQL

Vamos criar uma tabela de exemplo no banco de dados que contém os seguintes dados e entender como a cláusula Limit funciona no MySQL usando vários exemplos:

Tabela: funcionários

Limite MySQL

1. Limite do MySQL para retornar as linhas mais altas ou mais baixas

A seguinte declaração foi usada para obter os cinco principais funcionários mais jovens:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

Esta instrução primeiro classifica a idade do funcionário usando a cláusula Group By e, em seguida, a cláusula Limit retorna os cinco primeiros resultados. Após executar as etapas acima, obteremos a seguinte saída:

Limite MySQL

2. MySQL Limit para obter um intervalo de linhas usando offset

Às vezes você deseja obter um resultado entre os intervalos de valores. Por exemplo, você tem um grande número de linhas para exibir dados sobre aplicativos e, em seguida, divide-os em páginas, e cada página contém no máximo 10 linhas em uma tabela. Nesse caso, você pode usar a seguinte consulta para obter um intervalo de linhas:

 SELECT emp_id, emp_name, income FROM employees ORDER BY income DESC LIMIT 3,7; 

Esta instrução retorna as linhas começando na linha número 3 e vai até no máximo a 7ª linha. Ele também classifica a renda do funcionário da ordem mais alta para a mais baixa. Execute a consulta e você obterá a seguinte saída:

varredura java.nextstring
Limite MySQL

3. Limite MySQL com cláusula WHERE

O MySQL Limit também pode ser trabalhado com a cláusula WHERE. Primeiro ele verifica a condição especificada na tabela e produz as linhas que correspondem à condição.

Esta consulta seleciona os primeiros cinco funcionários com idade superior a 30 anos. Aqui, também usamos a cláusula Order By para classificar os funcionários em ordem decrescente usando sua renda.

 SELECT emp_name, emp_age, income FROM employees WHERE emp_age>30 ORDER BY income DESC LIMIT 5; 

Após a execução bem-sucedida da instrução acima, obteremos a seguinte saída:

Limite MySQL

4. MySQL LIMIT para obter o enésimo valor mais alto ou mais baixo

Às vezes, queremos obter as linhas do enésimo valor mais alto ou mais baixo. Nesse caso, podemos usar a seguinte cláusula MySQL LIMIT para obter o resultado esperado:

 SELECT column_list FROM table_name ORDER BY expression LIMIT n-1, 1; 

Nesta sintaxe, a cláusula LIMIT n-1, 1 retorna 1 linha que começa na linha n.

Por exemplo, a consulta a seguir retorna as informações do funcionário que possui a segunda maior renda:

 SELECT emp_name, city, income FROM employees ORDER BY income LIMIT 1, 1; 

Executando a instrução acima, ocorrerá a seguinte consulta:

Limite MySQL

Ressalta-se que a consulta acima só funciona quando sua tabela não contém dois funcionários que tenham alguma renda. Nesse caso, usaremos DENSE_RANK() para obter um resultado mais preciso.