procure por espacos em branco na string
Em Quarta 01 Novembro 2006 17:27, Jorge Vilela escreveu:
> 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