SQL: Paginando resultados com limit e offset

Tanto o MySQL quanto o Postgresql suportam um recurso muito útil para paginação de resultados, chamado de OFFSET, normalmente utilizado com LIMIT.

Neste post, veremos como utilizar o LIMIT e o OFFSET para paginar resultados de uma SQL.

A cláusula LIMIT é utilizada para limitar o número de resultados de uma SQL. Então, se sua SQL retornar 1000 linhas, mas você quer apenas as 10 primeiras, você deve executar uma instrução mais ou menos assim:

SELECT coluna FROM tabela LIMIT 10;

Agora, vamos supor que você quer somente os resultados de 11 a 20. Com a instrução OFFSET fica fácil, basta proceder da seguinte forma:

SELECT coluna FROM tabela LIMIT 10 OFFSET 10;

O comando OFFSET indica o início da leitura, e o LIMIT o máximo de registros a serem lidos. Para os registros de 60 a 75, por exemplo:

SELECT coluna FROM tabela LIMIT 15 OFFSET 60;

Com este recurso, fica fácil paginar os resultados de uma SQL e mostrar ao usuário apenas a página, ao invés de retornar todos os registros da tabela. Uma tabela com 2000 registros, por exemplo, fica muito melhor mostrar ao usuário de 10 em 10, por exemplo, e diminui a carga no banco de dados, melhorando a sua performance.

Referência:

http://www.petefreitag.com/item/451.cfm

Espero ter ajudado.

Abraço!

Deixe um Comentário

1 Comentários.

  1. show, so tive um pouco de dificuldade de calcular o offset, mas deu certo

Deixe um Comentário


NOTA - Você pode usar estesHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>