【发布时间】:2020-03-31 08:12:39
【问题描述】:
我在 MySQL 5.7.27 中有一个带有 utf8mb4_unicode_ci 排序规则的用户表。
不幸的是, ı 没有像 i 那样线程化,例如,下面的查询将找不到 Yılmaz
select id from users where name='Yilmaz';
我对 ä 和 a 等其他变音符号没有问题。例如,这两个查询给出完全相同的结果。
select id from users where name='Märie';
select id from users where name='Marie';
我不能简单地将ı 替换为i 并进行搜索,因为那样我将找不到名称为Yılmaz 的用户。
我是否必须使用不同的排序规则来支持所有变音符号?
以下是有关 unicode 字母的更多信息:
code | glyph |decimal | html | description
U+0131 | ı |305 |ı | Latin Small Letter dotless I
U+0069 | i |105 |- | Latin Small Letter I
【问题讨论】:
-
仅通过查看这些字母很难分辨。您能否将 Unicode 代码点及其名称添加到您的问题中
-
@deceze 谢谢,但我想如果我使用土耳其语排序规则,那么我会遇到其他变音符号的麻烦吗?我需要支持来自所有国家/地区的变音符号。
-
@JGNI 我附上了问题中 unicode 变音符号的详细描述。
-
好的,新信息,您可以针对特定查询使用不同的排序规则进行查询,如下所述:stackoverflow.com/a/2607164/916000。那你可以试试吗:
select id from users where name='Yilmaz' COLLATE utf8_general_ci;
标签: mysql unicode encoding collation