我知道在 SF 上有很多类似的问题,但我认为我的不同之处足以保证提出一个新问题。我有一个表,它有一个带有 utf8_unicode_ci 的 utf8 列。它在此列上还有一个唯一键以及另一个标记语言代码的列。列中的数据有许多不同的文字(带有各种口音的拉丁文、中文和俄文等)。
问题是我有时会想输入两个具有不同含义的单词,它们的区别仅在于变音符号(即西班牙语ano vs año)。由于 utf8_unicode_ci 不区分大小写和重音,它认为这些是相同的,只会让我输入一个。太糟糕了。理想情况下,我只需将整个列切换到不区分大小写但区分重音的排序规则,但这似乎不存在。很多不同的东西都使用这个列,所以我宁愿不要将列的默认排序规则更改为 utf8_bin ,以免混淆大小写。
因此,综上所述,我需要一些解决方案,该解决方案不会影响命中此列的许多现有查询中的默认大小写敏感度,但可以让我添加仅相差一个变音符号的单词。想法?如果必须,我将仅将唯一键约束切换为 utf8_bin,但我宁愿不这样做,因为我从不希望表中有两个仅因大小写而异的东西。