MySQL LIMIT & OFFSET com exemplos
Qual é a palavra-chave LIMIT?
A palavra-chave limit é usada para limitar o número de linhas retornadas em um resultado de consulta.
Pode ser usado em conjunto com os comandos SELECT, UPDATE OU DELETE Sintaxe da palavra-chave LIMIT
A sintaxe da palavra-chave LIMIT é a seguinte
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
AQUI
- “SELECIONE {nome(s) do(s) campo(s) | *} FROM nome(s) da(s) tabela(s)” é o Instrução SELECT contendo os campos que gostaríamos de retornar em nossa consulta.
- “[ONDE condição]” é opcional, mas quando fornecido, pode ser usado para especificar um filtro no conjunto de resultados.
- “LIMITE N” é a palavra-chave e N é qualquer número começando em 0, colocar 0 como limite não retorna nenhum registro na consulta. Colocar um número, digamos 5, retornará cinco registros. Se os registros na tabela especificada forem menores que N, todos os registros da tabela consultada serão retornados no conjunto de resultados.
Vejamos um exemplo -
SELECT * FROM members LIMIT 2;
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | 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 |
Como você pode ver na imagem acima, apenas dois membros foram retornados.
Obtendo uma lista de dez (10) membros apenas do banco de dados
Suponhamos que queremos obter uma lista dos 10 primeiros membros registrados no banco de dados Myflix. Usaríamos o seguinte script para conseguir isso.
SELECT * FROM members LIMIT 10;
A execução do script acima nos dá os resultados mostrados abaixo
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | 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 |
Observe que apenas 9 membros foram retornados em nossa consulta, pois N na cláusula LIMIT é maior que o número total de registros em nossa tabela.
Reescrevendo o script acima da seguinte maneira
SELECT * FROM members LIMIT 9;
Retorna apenas 9 linhas em nosso conjunto de resultados de consulta.
Usando o OFF SET na consulta LIMIT
A DESLOCAMENTO value também é usado com mais frequência junto com a palavra-chave LIMIT. O valor OFF SET nos permite especificar qual linha iniciar a recuperação de dados
Suponhamos que queremos obter um número limitado de membros começando no meio das linhas, podemos usar a palavra-chave LIMIT junto com o valor de deslocamento para conseguir isso. O script mostrado abaixo obtém dados começando na segunda linha e limita os resultados a 2.
SELECT * FROM `members` LIMIT 1, 2;
Executando o script acima em MySQL workbench contra o myflixdb fornece os seguintes resultados.
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | 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
Quando devemos usar a palavra-chave LIMIT?
Vamos supor que estamos desenvolvendo o aplicativo que roda em cima do myflixdb. Nosso designer de sistema nos pediu para limitar o número de registros exibidos em uma página para 20 registros por página para compensar tempos de carregamento lentos. Como implementaremos o sistema que atenda a esses requisitos do usuário? A palavra-chave LIMIT é útil em tais situações. Poderíamos limitar os resultados retornados de uma consulta a apenas 20 registros por página.
Resumo
- A palavra-chave LIMIT é usada para limitar o número de linhas retornadas de um conjunto de resultados.
- O número LIMIT pode ser qualquer número de zero (0) para cima. Quando zero (0) é especificado como limite, nenhuma linha é retornada do conjunto de resultados.
- O valor OFF SET nos permite especificar qual linha iniciar a recuperação de dados
- Pode ser usado em conjunto com os comandos SELECT, UPDATE OU DELETE Sintaxe da palavra-chave LIMIT