Mas como eu poderia contar em plpgsql quantos nomes o cara digitou?

On 11/1/06, joao cosme de oliveira junior < [EMAIL PROTECTED]> wrote:
Essa funcao nao contempla like!
por isso q tem fc_fonetica_primeiro nome segundo nome........


Em Quarta 01 Novembro 2006 16:51, Jorge Vilela escreveu:
>  É verdade, mas o que parecia ser simples agora esta ficando complicado.
>
> Usar a fonetica nas buscas me fez tentar muitas possibilidades, porém,
> ainda não consegui fechar em alguma coisa concreta que retorne somente
> resultados relevantes.
>
> Olha o sql que estou usando para que se o usuário digitar josé ou josé
> pinho retorne josé pinho em ambas pesquisas.
>
> DECLARE
>        Ppes_nome ALIAS FOR $1;
>        saida     umtipoqualquer;
>
> BEGIN
>      FOR saida IN EXECUTE
>          'SELECT pes_id, LOWER(pes_nome)
>          FROM pessoa
>          WHERE LOWER(fc_fonetica(pes_nome))
>                LIKE ''%'||LOWER(fc_fonetica(''||Ppes_nome||''))||'%'' '
>     LOOP
>
>      RETURN NEXT saida;
>
>      END LOOP;
>      RETURN;
> END;
>
> O problema é que se por exemplo, pesquiso por rogério, retornará: rogerio,
> rogério e gregorio. ( RGR e GRGR) por causa do like.
>
> Todo esse trabalho para que a busca encontre alguem com o nome Maria ines
> fonsseca duarte.
> Usando como parametro pra busca:
> Maria
> Maria fonsseca
> Ines duarte
> Maria Duarte
> Maria ines
> Ines fonsseca.
> etc...
>
> Alguem tem alguma idéia de como fazer isso usando a função de fonetica?
>
> On 11/1/06, joao cosme de oliveira junior <[EMAIL PROTECTED]> wrote:
> > so um detalhe
> > o fonema ss e diferente de x
> > talvez X por CH mas acho q ja ta comtemplado isso na funcao
> >
> > Em Quarta 01 Novembro 2006 14:56, Jorge Vilela escreveu:
> > > Obrigado João, vou pegar então a sua versão atualizada, em cima dela
> >
> > estou
> >
> > > pensando em criar uma função decideprimeironomeoutudo() que poderia
> > > procurar por espaços em branco no nome a ser pesquisado, se encontrar,
> > > então joga na fc_fonetica(), senão, joga na fc_foneticaprimeironome();
> > > Acho que vai dar certo.
> > >
> > > Coutinho, o problema ocorre quando o usúario digita somente o primeiro
> >
> > nome
> >
> > > da pessoa, se eu usar somente fc_fonetica('josé') não retornará
> >
> > resultados
> >
> > > que contenham qualquer coisa além de josé, por exemplo: josé silva,
> > > josé carlos etc.
> > > E se eu uso o fc_foneticaprimeironome('josé pinho') por exemplo, ele
> > > retorna josé pinho, josé silva e josé carlos também, algo desnecessário
> >
> > já
> >
> > > que o usuário sabe o nome e um sobrenome da pessoa pesquisada.
> > >
> > >
> > > Também vou acrescentar mais algumas possibilidades que não encontrei na
> > > fc_fonetica e mando na lista pra todo mundo ( por exemplo ss e x,
> > > "alessandra/alexandra" )
> > >
> > > On 10/31/06, Nabucodonosor Coutinho <[EMAIL PROTECTED]> wrote:
> > > > tah na lista sim
> > > >
> > > > outra coisa jorge, vc nao precisa usara funcao primeiro nome
> > > > voce pode fazer sua busa normalmente como fazia antes, apenas usando
> > > > a funcao fc_fonetica para formatar os dados a serem comparados
> > > >
> > > > ex:
> > > >
> > > > select * from clientes
> > > > where fc_fonetica(nome) = fc_fonetica('josé')
> > > > and fc_fonetica(sobrenome) = fc_fonetica('gavião')
> > > >
> > > > Em 31/10/06, joao cosme de oliveira junior<[EMAIL PROTECTED]>
> > > >
> > > > escreveu:
> > > > > strpos(string,string)
> > > > >
> > > > > caro jorge,
> > > > > nao sei se vc viu mas fiz uma pequena modificacao na na funcao
> > > > > dele! pq se vc rodar ela em um registro q for null da pau!
> > > > > acho q ta ai na lista eu postei
> > > > >
> > > > > Em Terça 31 Outubro 2006 18:00, Jorge Vilela escreveu:
> > > > > > Ola pessoal, em cima da função de fonética que o Fabrizio enviou,
> > > >
> > > > estou
> > > >
> > > > > > fazendo uma busca por pessoa.
> > > > > > O problema é que se eu uso fc_foneticaprimeironome() ela faz a
> >
> > busca
> >
> > > > > > somente em cima do primeiro nome, e se o usuário digitar nome e
> > > >
> > > > sobrenome,
> > > >
> > > > > > mesmo assim aparecem todos os registros que o nome seja igual ou
> > > >
> > > > parecido
> > > >
> > > > > > com o pesquisado.
> > > > > > O que pensei em fazer é:
> > > > > > Criar uma condição no banco para que ele busque pelo primeiro
> > > > > > nome
> > > >
> > > > somente
> > > >
> > > > > > se o nome pesquisado não contiver espaços.
> > > > > >
> > > > > > Sendo assim preciso saber se em plpgsql existe algum método que
> >
> > diga
> >
> > > > se
> > > >
> > > > > > existe um determinado caracter em uma série de caracteres.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Obrigado.
> > > > > > Jorge Vilela
> > > > >
> > > > > _______________________________________________
> > > > > Grupo de Usuários do PostgreSQL no Brasil
> > > > > Antes de perguntar consulte o manual
> > > > > http://pgdocptbr.sourceforge.net/
> > > > >
> > > > > Para editar suas opções ou sair da lista acesse a página da lista
> >
> > em:
> > > > > http://pgfoundry.org/mailman/listinfo/brasil-usuarios
> > > >
> > > > --
> > > > Nabucodonosor Coutinho
> > > > Database Administrator
> > > > Accu Hosting - www.accuhosting.com
> > > > _______________________________________________
> > > > Grupo de Usuários do PostgreSQL no Brasil
> > > > Antes de perguntar consulte o manual
> > > > http://pgdocptbr.sourceforge.net/
> > > >
> > > > Para editar suas opções ou sair da lista acesse a página da lista em:
> > > > http://pgfoundry.org/mailman/listinfo/brasil-usuarios
> >
> > _______________________________________________
> > Grupo de Usuários do PostgreSQL no Brasil
> > Antes de perguntar consulte o manual
> > http://pgdocptbr.sourceforge.net/
> >
> > Para editar suas opções ou sair da lista acesse a página da lista em:
> > http://pgfoundry.org/mailman/listinfo/brasil-usuarios
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a