MySQL LIMIT & OFFSET com exemplos

Anonim

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 a sintaxe da palavra-chave dos comandos SELECT, UPDATE OU DELETE LIMIT

A sintaxe da palavra-chave LIMIT é a seguinte

SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;

AQUI

  • "SELECT {fieldname (s) | *} FROM tableName (s)" é a instrução SELECT que contém os campos que gostaríamos de retornar em nossa consulta.
  • "[Condição WHERE]" é opcional, mas quando fornecido, pode ser usado para especificar um filtro no conjunto de resultados.
  • "LIMIT N" é a palavra-chave e N é qualquer número começando em 0, colocando 0 como o 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 email credit_ card_ number
1 Janet Jones Female 21-07-1980 NULL First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. NULL

Como você pode ver na imagem acima, apenas dois membros foram devolvidos.

Obtendo uma lista de dez (10) membros apenas do banco de dados

Vamos supor que desejamos obter uma lista dos primeiros 10 membros registrados do banco de dados Myflix. Usaríamos o seguinte script para conseguir isso.

SELECT * FROM members LIMIT 10;

Executar o 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 email credit_ card_ number
1 Janet Jones Female 21-07-1980 NULL First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it. 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 como segue

SELECT * FROM members LIMIT 9;

Retorna apenas 9 linhas em nosso conjunto de resultados da consulta.

Usando OFF SET na consulta LIMIT

O valor OFF SET também é mais frequentemente usado junto com a palavra-chave LIMIT. O valor OFF SET nos permite especificar qual linha iniciar a partir da recuperação de dados

Vamos supor que queremos um número limitado de membros começando do 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;

A execução do script acima no ambiente de trabalho MySQL no myflixdb fornece os seguintes resultados.

 
membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it. 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 estejamos 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, digamos, 20 registros por página para conter o tempo de carregamento lento. Como vamos implementar 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 20 registros apenas por página.

Resumo

  • A palavra-chave LIMIT de é 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) indo para cima. Quando zero (0) é especificado como o limite, nenhuma linha é retornada do conjunto de resultados.
  • O valor OFF SET nos permite especificar qual linha iniciar a partir da recuperação de dados
  • Pode ser usado em conjunto com a sintaxe da palavra-chave dos comandos SELECT, UPDATE OU DELETE LIMIT