mysql utf8编码和唯一键

Ian*_*ood 2 mysql unicode collation utf-8 unique-index

我正在向用户表(来自许多站点的许多用户)输入数据:
myisam default collation latin1_swedish....

将该数据导入到 innodb table utf8_general

我已经在username,site_id组合上放置了一个唯一的密钥,但这对于同一站点的2个用户来说是失败的:

user 1    dranfog,
user 2    drånfog
Run Code Online (Sandbox Code Playgroud)

如果我跑:

SELECT IF('å' = 'a', 'yep', 'nope');
Run Code Online (Sandbox Code Playgroud)

直接在目标数据库上使用utf8编码,我得到'yep'.

任何解决此问题的提示都非常受欢迎.我的印象是utf8会将这些视为不同的字符,但似乎并非如此.

ype*_*eᵀᴹ 8

结尾的排序_ci是大小写(和重音)不敏感.

您可以将排序规则更改为" utf8_binary'dranfog不同方式处理" drånfog.