Pesquisa letra por letra no bd Postgres

3 respostas
nocland

[color=red]Pessoal alguem tem um exemplo de como efetuar uma consulta
no Banco de dados Postgres Letra por Letra?
Minhas consultas estão ok, agora tenho um textfield, e quero
que apartir do que o usuário vai digitando va aparecendo os primeiros
com essa determinada letra.[/color]

3 Respostas

cassio

nocland:
[color=red]Pessoal alguem tem um exemplo de como efetuar uma consulta
no Banco de dados Postgres Letra por Letra?
Minhas consultas estão ok, agora tenho um textfield, e quero
que apartir do que o usuário vai digitando va aparecendo os primeiros
com essa determinada letra.[/color]

Primeiro: Não faça consultas deste tipo com uma quantidade muito pequena de caracteres digitados, pois isso pode retornar muitos dados e sobrecarregar o banco e sua aplicação.

Segundo: Para fazer esse tipo de consulta você pode usar LIKE (comum para a grande maioria dos SGBDs) ou expressões regulares.

Casando com expressões regulares:

Casa em qualquer parte

select campo1, campo2, campo3 from suatabela where campo1 ~ 'caracteres_digitados';

Casa o que foi digitado no text field com o início dos valores gravados no campo1.

select campo1, campo2, campo3 from suatabela where campo1 ~'^caracteres_digitados';

Casando com LIKE

casa em qualquer parte

select campo1, campo2, campo3 from suatabela where campo1 like '%caracteres_digitados%';

casa no inicio

select campo1, campo2, campo3 from suatabela where campo1 like 'caracteres_digitados%';
andredeividi

que contenha esse letra?

like (%‘a’%) algo assim
verifique o manual sql.

abraço

peron

nocland:
[color=red]Pessoal alguem tem um exemplo de como efetuar uma consulta
no Banco de dados Postgres Letra por Letra?
Minhas consultas estão ok, agora tenho um textfield, e quero
que apartir do que o usuário vai digitando va aparecendo os primeiros
com essa determinada letra.[/color]

Como nossos colegas falaram, tome cuidado ao pesquisar uma única letra, pois pode trazer muitos registros, dependendo de sua tabela.

Por isso, traga até um limite de resultados.

SELECT campo1, campo2, campo3 from suatabela WHERE campo1 LIKE '%Ca%' LIMIT 100;

nesse sql, você traz os 100 primeiros registros encontrados. (funciona no PostGreSQL).

[]s

Criado 8 de novembro de 2007
Ultima resposta 8 de nov. de 2007
Respostas 3
Participantes 4