mysql结果是“特殊字符” - 敏感

时间:2010-02-18 09:46:49

标签: mysql utf-8 special-characters

似乎当我改变mysql表(在utf-8表/列上)时,它返回一个重复的条目错误。

示例:

ALTER TABLE name ADD UNIQUE(name)

错误:

Duplicate entry 'Adé' for key 'name_UNIQUE'

我认为这是因为我的数据库中的行跟随

Ade, Adé

是否可以使用特殊字符更改唯一的表格?

谢谢,

鲍勃

2 个答案:

答案 0 :(得分:3)

您需要将列上的collation(或整个表或数据库 - 我认为连接范围不适用于唯一约束)设置为尊重“e”和“é”。有关不同排序规则设置可能产生的效果的示例,请参阅here

假设您的字符集为utf8,您可以使用最安全的排序规则来避免对您的唯一约束产生误报,utf8_bin,其中两个字符串永远不会相等,除非它们是相同的字串。但是,你需要注意像unicode规范化这样的事情,否则你最终会得到两个相同的字符序列的键,它们在不同的规范化形式中会使它们不相等。只需要注意一点。

答案 1 :(得分:1)

您可能希望使用=LIKE

,而不是使用LIKE BINARY运算符

<强> More info here.