Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kania

Like com Soudex na consulta fonética

Recommended Posts

Olá pessoal, gente estou efetuando um select no BD Mysql, porem não estou conseguindo entender o porque ele retorna sempre vazio, menso tendo dados no banco para retornar com a expressão digitada.

 

SQL

SELECT cadastro_anunciantes.nome_fantasia, cadastro_anunciantes.bairro, cadastro_anunciantes.endereco, 
cadastro_anunciantes.fone_comercial, cadastro_anunciantes.fone_celular, cadastro_anunciantes.logo, 
cadastro_anunciantes.produto, estados.sgl_estado, cidades.nome_cidade, cadastro_anunciantes.url_site, 
cadastro_anunciantes.numero, cadastro_anunciantes.complemento, cadastro_anunciantes.id_anunciante FROM cadastro_anunciantes
INNER JOIN palavras_chaves ON palavras_chaves.id_anunciante = cadastro_anunciantes.id_anunciante
INNER JOIN cidades ON cidades.id_cidade = cadastro_anunciantes.cidade
INNER JOIN estados ON estados.id_estado = cadastro_anunciantes.estado
WHERE cadastro_anunciantes.cidade = 3281
AND cadastro_anunciantes.status = 1
AND cadastro_anunciantes.estado = 18
AND cadastro_anunciantes.BAIRRO <> ''
AND SOUNDEX(palavras_chaves.palavra) LIKE SOUNDEX('%salao%')
GROUP BY cadastro_anunciantes.id_anunciante ORDER BY cadastro_anunciantes.produto DESC, cadastro_anunciantes.nome_fantasia ASC

 

O objetivo do select é pegar todas as palavras cadastradas que tenham o termo salao ou salão, etc, levando-se em consideração que o usuário digite errado sem acentos.

 

Mesmo modificando o de LIKE para = ele traz o resultado como vazio

Onde está o erro na minha consulta fonética? Se é que tem algum erro nela, rsrsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Prog, também tentei desta forma que você passou, por algum motivo ao qual não sei dizer ele retorna vazio.

 

Eu efetuei um teste simples fazendo um select assim

 

SELECT * FROM palavras_chaves WHERE palavra LIKE '%salão%'

 

Desta forma ele retorna as palavras, que prova que tem os termos procurados dentro do BD

 

Instituto, Salão de Beleza

Leo Ross Salão e Estétca

Materiais para Salão de Cabelereiros

Salão de Beleza

Salão de Cabeleireiro

Salão e Estética

Salão Julia

 

Porem o preciso fazer é a pesquisa por fonética, para caso o usuário digite sem o acento logo neste caso preciso usar o SOUNDEX, mas ele não esta funcionando conforme deveria pelo que parece

 

Outras formas que tentei.

 

SELECT palavra FROM palavras_chaves WHERE soundex(palavra) LIKE soundex('%salao%') GROUP BY palavra

 

e

 

SELECT palavra FROM palavras_chaves WHERE soundex(palavra) LIKE soundex('salao') GROUP BY palavra

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentei com e sem o LIKE, das 2 formas ele traz o resultado como vazio, só funciona se entrar com acento

 

Algo que notei é que se o erro só acontece se o termo pesquisado estiver no meio da frase tipo instituto e salão de beleza, se eu procurar por salao ele não acha agora se eu procurar por exemplo pelo termo premio que serio correto digitar premio, ele encontra, com uma palavra apenas ele acha, ou se for digitado instituto e salao de beleza, sem acento porem a frase toda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

metacaracteres NO INICIO não funcionam quando se usa SOUNDEX ou seja, o valor procurado deve começar com 'S' no caso de salão

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.