sql中的字符问题

时间:2011-02-20 15:22:15

标签: mysql character-encoding

select * from table where key='çmyk'

当我在表上运行此查询时,其行的值为'cmyk'。

查询返回该行。但价值观是不同的。当我搜索'çmyk'时它返回'cmyk'。

所以我该怎么办?

MySQL charset:UTF-8 Unicode(utf8) MySQL连接排序规则:utf8_unicode_ci table collat​​ion:latin1_swedish_ci

2 个答案:

答案 0 :(得分:2)

问题是latin1_swedish_ci排序不仅不区分大小写,而且对变音不敏感,因此以下情况适用:

Ä = A
Ö = O
etc.

在WHERE子句中切换到区分大小写的排序规则应该可以正常工作,如下所示:

select * from table where key='çmyk' collate latin1_general_cs;

但需要注意的是,这对性能不利。

mySQL参考:9.1.7.8. Examples of the Effect of Collation

答案 1 :(得分:-1)

尝试运行命令SET NAMES latin1;,然后运行查询。