Obrigado Matheus, parece ser o que eu preciso. Vou pesquisar.

 

De: [email protected]
[mailto:[email protected]] Em nome de Matheus de
Oliveira
Enviada em: quarta-feira, 5 de setembro de 2012 11:39
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] Localizar em todos campos de uma tabela

 

 

2012/9/5 Saulo Morais Lara <[email protected]>

Preciso buscar um determinado texto em todos os campos. Estou fazendo assim:

Concateno os campos em um campo e localizo neste campo concatenado. Por
exemplo:

 

Localizar o texto ’35 CENTRO’. Este texto se refere a um número inicial de
Cep e um bairro. 

 

SELECT cep.cepcep, cep.cepend, cep.cepbai, cep.cepcid,
cep.cepuf,coalesce(cep.cepcep,' ')||coalesce(cep.cepend,'
')||coalesce(cep.cepbai,' ')||coalesce(cep.cepcid,' ')||coalesce(cep.cepuf,'
') FROM cad.cep WHERE coalesce(cep.cepcep,' ')||coalesce(cep.cepend,'
')||coalesce(cep.cepbai,' ')||coalesce(cep.cepcid,' ')||coalesce(cep.cepuf,'
') like '%35%CENTRO%' OR ORDER BY cepcep

 

Funciona perfeito. Vejam que de acordo com a consulta, o CEP vem antes do
bairro.

Caso o usuário digitar ‘CENTRO 35’, obviamente a consulta não irá funcionar.

 

Pensei em fazer combinações possíveis com o texto digitado pelo usuário.

Irá localizar tanto ’35 CENTRO’ quanto ‘CENTRO 35’.

 

A pergunta é. Esta seria a melhor maneira se resolver isto?

 


Acho que o que você quer pode ser atingido melhor com técnicas de full text
search [1].

Procure no Google [2] também, tem vários exemplos.

[1] http://www.postgresql.org/docs/9.1/static/textsearch.html
[2] https://www.google.com.br/search?q=postgresql+full+text+search

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados PostgreSQL
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br <http://www.dextra.com.br/> 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a