Resumo: neste tutorial, você aprenderá a usar MySQL LIMIT
cláusula para restringir o número de linhas devolvidas por uma consulta.
Introduction to MySQL LIMIT clause
The LIMIT
clause is used in theSELECT
statement to constrain the number of rows to return. A cláusula LIMIT
aceita um ou dois argumentos. Os valores de ambos os argumentos devem ser inteiros zero ou positivos.,
a seguir ilustra O LIMIT
sintaxe em cláusula com dois argumentos:
Code language: SQL (Structured Query Language) (sql)
nesta sintaxe:
-
offset
especifica o deslocamento da primeira linha para retornar. Ooffset
da primeira linha é 0, não 1. - o
row_count
especifica o número máximo de linhas a retornar.,
A figura a seguir ilustra o LIMIT
cláusula:
Quando você usar o LIMIT
cláusula com um argumento, o MySQL irá usar esse argumento para determinar o número máximo de linhas a retornar a partir da primeira linha do conjunto de resultados.,
Portanto, estas duas cláusulas são equivalentes:
Code language: SQL (Structured Query Language) (sql)
E
além da sintaxe acima, o MySQL fornece as seguintes alternativas LIMIT
cláusula para compatibilidade com o PostgreSQL.
Code language: SQL (Structured Query Language) (sql)
limite e ordem pelas cláusulas
a SELECT
declaração sem uma ORDER BY
a cláusula devolve linhas numa ordem não especificada. Significa que as linhas podem estar em qualquer ordem., Quando aplicar a cláusula LIMIT
a este conjunto de resultados não ordenado, não saberá quais as linhas que a consulta irá devolver.
Por exemplo, você pode querer passar a quinta até a décima filas, mas a quinta até a décima em que ordem? A ordem das linhas é desconhecida, a menos que você especifique a cláusula ORDER BY
.
portanto, é uma boa prática usar sempre a cláusula LIMIT
com a cláusula ORDER BY
para restringir as linhas de resultado em ordem única.,
Code language: SQL (Structured Query Language) (sql)
a figura A seguir ilustra a ordem de avaliação de LIMIT
cláusula SELECT
instrução:
MySQL LIMITE de exemplos
vamos usar o customers
tabela do banco de dados de exemplo para demonstração.,
1) Usando o MySQL LIMITE para obter o maior ou menor linhas
Esta instrução utiliza o LIMIT
cláusula para obter os cinco primeiros clientes que têm o maior de crédito:
Code language: SQL (Structured Query Language) (sql)
Experimentá-Lo
neste exemplo:
- Primeiro,
ORDER BY
cláusula classifica os clientes por créditos em alta para a mais baixa., - Então, a cláusula
LIMIT
devolve as primeiras 5 linhas.
da mesma forma, este exemplo usa o LIMIT
cláusula encontrar 5 os clientes que têm o menor número de créditos:
Code language: SQL (Structured Query Language) (sql)
Experimentá-Lo
neste exemplo:
- Primeiro,
ORDER BY
cláusula classifica os clientes por créditos de alto a baixo. - Então, a cláusula
LIMIT
devolve as primeiras 5 linhas.,
porque há mais de 5 clientes que têm créditos zero, o resultado da consulta acima pode levar a um resultado inconsistente.,
Para corrigir esse problema, você precisará adicionar mais uma coluna para o ORDER BY
cláusula para restringir a linha na única ordem:
Code language: SQL (Structured Query Language) (sql)
Experimentá-Lo
2) Usando o MySQL LIMITE para a paginação
Quando você exibir dados nas aplicações, muitas vezes você deseja dividir as linhas em páginas, onde cada página contém um determinado número de linhas, como 5, 10 ou 20.
para calcular o número de páginas, você obtém as linhas totais divididas pelo número de linhas por página., Para obter linhas de uma página específica, você pode usar a cláusula LIMIT
.
Esta consulta utiliza o COUNT(*)
função de agregação para obter o total de linhas a partir de customers
tabela:
Code language: SQL (Structured Query Language) (sql)
Code language: JavaScript (javascript)
Suponha que cada página tem 10 linhas, para apresentar 122 clientes você tem 13 páginas. A última 13ª página contém apenas duas linhas., LIMIT
cláusula para obter linhas da página 1, que contém as primeiras 10 clientes ordenados por nome do cliente:
Code language: SQL (Structured Query Language) (sql)
Experimentá-Lo
Esta consulta utiliza o LIMIT
cláusula para obter as linhas da segunda página que incluem linha 11 – 20:
Code language: SQL (Structured Query Language) (sql)
Experimentá-Lo
neste exemplo, a cláusula LIMIT 10, 10
retorna 10 linhas para a linha 11 – 20.,
3) Usando o MySQL LIMITE para obter o n-ésimo maior ou menor valor
Para obter o n-ésimo maior ou menor valor, use a seguinte tag LIMIT
cláusula:
Code language: SQL (Structured Query Language) (sql)
A cláusula LIMIT n-1, 1
retorna 1
linha de partida na linha n
.
Por exemplo, a seguinte encontra o cliente que possui a segunda maior crédito:
Code language: SQL (Structured Query Language) (sql)
Experimentá-Lo
Vamos verificar o resultado., Esta consulta retorna todos os clientes classificados por créditos de alto para baixo:
Code language: SQL (Structured Query Language) (sql)
Experimentá-Lo
Como você pode ver claramente a partir da saída, o resultado foi correto, conforme o esperado.Note que esta técnica funciona quando não há dois clientes com os mesmos limites de crédito. Para obter um resultado mais preciso, você deve usar a funçãoDENSE_RANK()
window.,
neste tutorial, você aprendeu como usar o MySQL LIMIT
cláusula para restringir o número de linhas retornadas por SELECT
instrução.
- este tutorial foi útil?
- YesNo