为什么mysql对一个字符的所有派生都一视同仁?

为什么mysql对一个字符的所有派生都一视同仁?,mysql,unicode,Mysql,Unicode,假设一个表的字段编码为unicode_ci,其中有记录'Grün'。 如果我执行下一个查询: SELECT * FROM `knows_names` WHERE `name`='Grun' 它将输出我的记录(即使它在美国有日志) 问题: 为什么会这样?一旦我读过Unicode,它会把每个字母当作一个单独的实体,然后如果你在上面加上重音或分隔符,它就会以某种方式分开保存,作为一个附加项。如果我说了些愚蠢的话,请纠正我。也许Mysql只是在比较纯字母,而忘记了花哨的插件。但是那样的话,它是疯狂的,

假设一个表的字段编码为unicode_ci,其中有记录'Grün'。

如果我执行下一个查询:

SELECT * FROM `knows_names` WHERE `name`='Grun'
它将输出我的记录(即使它在美国有日志)

问题:


为什么会这样?一旦我读过Unicode,它会把每个字母当作一个单独的实体,然后如果你在上面加上重音或分隔符,它就会以某种方式分开保存,作为一个附加项。如果我说了些愚蠢的话,请纠正我。也许Mysql只是在比较纯字母,而忘记了花哨的插件。但是那样的话,它是疯狂的,因为ç不是c,也许不获取所有的变化会很有趣,但是我们正在寻找的变化。我只想知道发生了什么以及为什么。

取决于排序规则:谢谢,我在哪里可以找到它发生的原因。很好的例子:D