MySQL中的一个字符串有一个
character set and a collation. Utf8是字符集,utf8_bin是其归类之一。要将您的字符串字面值与utf8列进行比较,请将其转换为utf8,使用_charset符号将其前缀:
_utf8 'Something'
现在一个排序规则只对某些字符集有效。 utf8的区分大小写排序规则似乎是utf8_bin,您可以指定为:
_utf8 'Something' collate utf8_bin
通过这些转换,查询应该起作用:
select * from page where pageTitle = _utf8 'Something' collate utf8_bin
_charset前缀适用于字符串文字。要更改字段的字符集,有CONVERT … USING。当您想将pageTitle字段转换为另一个字符集时,这是非常有用的,如下所示:
select * from page
where convert(pageTitle using latin1) collate latin1_general_cs = 'Something'
要在名为“TAB”的表中查看名为“col”的列的字符和排序规则,请尝试:
select distinct collation(col), charset(col) from TAB
所有字符集和排序规则的列表可以在以下位置找到:
show character set
show collation
并且可以找到utf8的所有有效归类:
show collation where charset = 'utf8'