Campão 0 Denunciar post Postado Março 4, 2011 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
Campão 0 Denunciar post Postado Março 4, 2011 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