Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos.

problema SELECT MATCH( .. ) AGAINST ( ...)

Recommended Posts

aee geral!

 

tenho um banco que está com diferença no tratamento de acentos entre os campos:

 

coluna 'nome' salvando com acentos: ex. pão

coluna 'texto' salvando com acentos: ex. p&iacuteo

 

só q preciso fazer uma consulta com 'SELECT * FROM noticias MATCH(nome, texto) AGAINST('pão')' que só permite um tipo pra busca...

 

ai esta o problema: neste tipo de pesquisa ou coloco pão ou p&iacuteo..

nao sei oq fazer...pleaaaaaase!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi, marcos, tudo bom?

então, vou te falar o que eu faria...

trataria a entrada dessas palavras no banco de dados, de forma que todos os acentos ficassem padronizados...

sei lá, algo como htmlentities para que tudo fique igual e quando for pesquisar, usa o mesmo processo para que as strings sejam convertidas e fiquem iguais as informações do banco de dados...

desse jeito, fica complicado a pesquisa porque existem 2 tipos de acentuação...eu tbm ficaria na dúvida como você...

esqueci de falar, tbm adapta o banco de dados a esse formato...

exemplo:

ALTER DATABASE `sua_base` CHARSET = UTF8 COLLATE = utf8_general_ci;

tem esses parametros...logo, assim que resolver uns problemas num sistema que to criando, tbm vou usar isso!!!

bom, tomara que isso ajude, marcos!!grande abraço e boa sorte no projeto!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi, marcos, tudo bom?

então, vou te falar o que eu faria...

trataria a entrada dessas palavras no banco de dados, de forma que todos os acentos ficassem padronizados...

sei lá, algo como htmlentities para que tudo fique igual e quando for pesquisar, usa o mesmo processo para que as strings sejam convertidas e fiquem iguais as informações do banco de dados...

desse jeito, fica complicado a pesquisa porque existem 2 tipos de acentuação...eu tbm ficaria na dúvida como você...

esqueci de falar, tbm adapta o banco de dados a esse formato...

exemplo:

ALTER DATABASE `sua_base` CHARSET = UTF8 COLLATE = utf8_general_ci;

tem esses parametros...logo, assim que resolver uns problemas num sistema que to criando, tbm vou usar isso!!!

bom, tomara que isso ajude, marcos!!grande abraço e boa sorte no projeto!!!

 

 

obrigado pela ajuda horacio. resolvi este problema de acentos com o uso da funcao 'html_entities' do php.

 

troquei minha logica para consulta, usei um select com varios 'like'. minha consulta ficou assim:

 

select * from tabela where (titulo like '% palavra1 %' and titulo like '% palavra2 %') or

(texto like '% palavra1 %' and texto like '% palavra2 %');

 

ou seja, apenas pego a linha se existe as 2 palavras no titulo/texto..

é a mesma logica do 'match against'..mas considerei até melhor o resultado, pois usando 'match against' ele retorna linhas

que possuem apenas 'palavra1', por exemplo, e nao obrigatoriamente as 2 juntas..

 

obrigado pela atençã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.