MySQL 对 Unicode 字符的处理:Ä、Ö 和 Ü
在搜索两个“Harligt”时遇到相同的查询结果是令人费解的MySQL 中的“和”Härligt”。此行为源于 MySQL 的默认排序规则设置,该设置等同于某些 Unicode 字符。
MySQL 的非特定于语言的 Unicode 排序规则(例如 utf8_general_ci 和 utf8_unicode_ci)将某些字符视为等效字符,即:
因此,两个查询将所有三个字符视为相同,从而产生匹配结果.
要解决此问题,有两个选项:
<code class="sql">select * from topics where name='Harligt' COLLATE utf8_bin;</code>
此方法允许区分大小写的搜索,而无需自动字符转换。
如果需要不区分大小写的搜索但不进行字符转换,MySQL目前不提供合适的排序规则。然而,社区内正在进行讨论和潜在的解决方案。
以上是为什么'Harligt”和'Härligt”在 MySQL 中返回相同的结果?的详细内容。更多信息请关注PHP中文网其他相关文章!