[Resolvido] Problemas com acentos
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!
Discussão (1)
Carregando comentários...