segunda-feira, 23 de maio de 2016

LIMIT e LIKE - SQL

O LIMIT recebe 2 parâmetros. O primeiro número informa qual a primeira linha que ele deve trazer. Como colocamos 0, ele começará a pegar da primeira linha do resultado; o segundo indica quantas linhas ele deve trazer. No caso, 100.

Se quiséssemos a segunda página, faríamos:
select * from tabela limit 100, 100
Veja. Devemos começar a pegar da linha número 100 (o primeiro parâmetro indica isso) e queremos pegar mais 100 elementos. A terceira página:
select * from tabela limit 200, 100
A lógica é a mesma. E assim por diante. O programador deve então pedir os dados aos poucos.

A instrução LIMIT é usada sempre ao fim da SQL. E você pode misturar a consulta com outras instruções como WHERE e JOIN.

Vamos, por exemplo, pegar os 100 primeiros nomes de uma tabela que se chamem "Bruno":
select * from tabelaNome where nome = 'Bruno' limit 0, 100
O problema do código acima é que a instrução trará os dados da tabela cujo nome é exatamente "Bruno". Não é o que queremos, afinal a pessoa pode ter sobrenome. Para resolver esse problema, usaremos uma nova palavra, a palavra LIKE. Ela nos ajuda a passar uma "expressão" e a usar coringas para buscar textos. Veja:
select * from tabelaNome where nome like 'Bruno%' limit 0, 100
Dissemos ali que aceitamos nomes que começam com "Bruno" e depois qualquer coisa. O % faz esse papel. Podemos usar o % de varias maneiras. Por exemplo, se quisermos todos que tenham o sobrenome "Lobo", podemos fazer:
select * from tabelaNome where nome like '%Lobo%' limit 0, 100
Colocamos coringa no começo e no fim. Nesse caso, procuramos por "Lobo" em qualquer lugar do nome da pessoa.

O LIKE então nos ajuda a buscar por pedaços de texto dentro de campos varchar. Mas cuidado, usar LIKEcusta caro para o banco de dados, já que ele tem que olhar linha por linha. Em uma tabela grande, isso pode ser bastante custoso.

Nenhum comentário:

Postar um comentário