mysql - SELECT DISTINCT + acentos nas palavras

cmancre

Membro
Olá pessoal, estou de volta de uma base de dados e reparei num facto e queria confirmar com voces a seguinte situação. Quero confirmar se estou correcto ou se trata de má configuração do mysql.

Exemplo: tenho uma base de dados com 3 linhas
nome | idade | cidade
--------------
(Zé , 14 , Lisboa)
(Ze , 15 , Porto)
(Maria, 14 , Porto)

Se eu fizer SELECT DISTINCT nome FROM tabela;
O resultado é (Zé)
(Maria)

A minha pergunta é, o DISTINCT ignora acentos????
O mesmo acontece com a seguinte query:

SELECT nome, COUNT(nome) AS nn FROM tabela GROUP BY nome;
resultado é (Zé, 2)
(Maria, 1)


Obrigado.
 
Não conheço mysql, mas seguramente não é um problema do "distinct".

Devido à "internacionalização" e à multiplicidade de linguagens e caracteres, as BD implementaram o conceito de "collation", que permite definir equivalências e precedências.

Assim, cada um utiliza a "collation" que mais lhe interessa. Nuns casos interessa ser "case-insensitive", noutros "case-sensitive", num "accent-insentitive", etc,etc...

No teu caso, se queres distinguir "Zé" de "Ze", então tens de procurar uma collation que seja "accent-sensitive".
Ou a defines na própria estrutura de tabelas (ou base-de-dados), ou então forças nas instruções SQL.

http://dev.mysql.com/doc/refman/5.0/en/charset-collate.html
 
Obrigado kzip, pois eu nao sou grande expert em db mas pensei logo que seria algo relacionado com charsets e "amigos". Já estou a ler o manual e estou encaminhado :)

Obrigado
 
Back
Topo