Une chaîne dans MySQL a un jeu de caractères et un classement . Utf8 est le jeu de caractères et utf8_bin est l'un de ses classements. Pour comparer votre littéral de chaîne à une colonne utf8, convertissez-le en utf8 en le préfixant avec la notation _charset :
_utf8 'Something'
Désormais, une collation n'est valide que pour certains jeux de caractères. Le sensible à la casse la collation pour utf8 semble être utf8_bin, que vous pouvez spécifier comme :
_utf8 'Something' collate utf8_bin
Avec ces conversions, la requête devrait fonctionner :
select * from page where pageTitle = _utf8 'Something' collate utf8_bin
Le préfixe _charset fonctionne avec les littéraux de chaîne. Pour changer le jeu de caractères d'un champ, il y a CONVERT ... USING. Ceci est utile lorsque vous souhaitez convertir le champ pageTitle en un autre jeu de caractères, comme dans :
select * from page
where convert(pageTitle using latin1) collate latin1_general_cs = 'Something'
Pour voir le caractère et le classement d'une colonne nommée 'col' dans une table appelée 'TAB', essayez :
select distinct collation(col), charset(col) from TAB
Une liste de tous les jeux de caractères et classements peut être trouvée avec :
show character set
show collation
Et tous les classements valides pour utf8 peuvent être trouvés avec :
show collation where charset = 'utf8'