kania 0 Denunciar post Postado Janeiro 24, 2011 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
Prog 183 Denunciar post Postado Janeiro 25, 2011 SOUNDEX(palavras_chaves.palavra) = SOUNDEX('salao') Compartilhar este post Link para o post Compartilhar em outros sites
kania 0 Denunciar post Postado Janeiro 25, 2011 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
Prog 183 Denunciar post Postado Janeiro 25, 2011 você esta tentando com ou sem o LIKE? Compartilhar este post Link para o post Compartilhar em outros sites
kania 0 Denunciar post Postado Janeiro 25, 2011 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
-rafael- 1 Denunciar post Postado Fevereiro 14, 2011 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