MySQL对重音字符过于聪明

时间:2011-08-18 12:37:59

标签: mysql diacritics cjk

我想,通常人们都希望让他们的程序表现得像这样,但在我的情况下,这与我想要的完全相反。

不知何故,我的MySQL数据库能够读取不同的重音字符。例如,shīshíshǐshìshi都是相同的。当我搜索一个时,我也会得到其他人。 Proofpic:

smart SQL

这不是我想要的,因为对我而言,这些价值观是非常不同的。基本上,pic上的查询必须返回空行,因为该表中没有shi(没有重音)的单个条目。

我的表类型是InnoDB,整理是utf8_general_ci

1 个答案:

答案 0 :(得分:2)

使用utf8_bin归类。您不必更改整个列的排序规则,您可以在每个查询的基础上使用它

WHERE `pinyin` = 'shi' COLLATE utf8_bin

您还可以尝试使用可能更适合您的不同排序规则(utf8_bin适用于binery级别,因此即使两个具有不同字节代码的unicode字符相同,它们也会看到它们不同)。 / p>