Ir para conteúdo

POWERED BY:

Arquivado

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

Campão

[Resolvido] Problemas com acentos

Recommended Posts

Boa tarde pessoal, tudo bem???

Seguinte, estou desenvolvendo um blog com php/mysql e estou com um probleminha com relação as palavras acentudas! Basicamente o problema é que o MySQL iginora uma palavra com acento e no resultado da busca, ele retorna por exemplo a palavra "campao" e a palavra "campão" com se fosse a mesma palavra, e justamente o que quero é que ele acuse essa diferença!

 

Vamos la, tenho uma tabela chamada "posts_tags" com a estrutura:

codigo | post | tabela

 

Preenchi essa tabela da seguinte maneira:

1 | 1 | campão
2 | 1 | campao
3 | 2 | campão
4 | 2 | campao
5 | 1 | leandro
6 | 1 | parice
7 | 3 | campão

O que preciso buscar é o seguinte, preciso que o SQL me retorne as palavras com maior ocorrencia. O resultado seria mais ou menos esse:

campão #primeiro, pois tem 3 ocorrencias
campao #segundo, pois tem 2 ocorrencias
leandro #somente 1 ocorrencia
parice #somente 1 ocorrencia

Ai fiz meu script SQL e ficou o seguinte:

 

SELECT palavra FROM posts_tags GROUP BY palavra ORDER BY COUNT(palavra) DESC LIMIT 20");

 

porem, ai vem o meu problema, como falei acima, a palavra "campão" e "campao" vem como se fossem uma palava so, e o resultado ficou assim

 

campão #primeiro, pois agora ele acha que tem 5 ocorrencias
leandro #somente 1 ocorrencia
parice #somente 1 ocorrencia

 

Tive esse mesmo problema na hora de inserir as palavras, pois para não ter redundancia, eu fazia uma pesquisa antes de inserir a palavra e na hora da procura ele retornava "campão" = "campao". Para solucionar esse problema eu usei

 

CONVERT( _utf8 '$palavra' USING latin1 ) COLLATE latin1_general_ci

 

e funcionou normalmente!

 

Agora não consigo usar esse CONVERT junto com o GROUP BY, o que tentei foi algo assim, mas da erro!

 

SELECT palavra FROM posts_tags GROUP BY CONVERT( _utf8 'palavra' USING latin1 ) COLLATE latin1_general_ci ORDER BY COUNT(palavra) DESC LIMIT 20");

 

Alguem teria uma solução???

 

Obrigado!!

Aguardo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, resolvi o problema!!!

SELECT palavra FROM posts_tags GROUP BY palavra  COLLATE latin1_general_ci ORDER BY COUNT(palavra) DESC LIMIT 20");

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.