gpt4 book ai didi

MySQL 不区分大小写但区分重音 UTF8 唯一键

转载 作者:可可西里 更新时间:2023-11-01 07:09:51 24 4
gpt4 key购买 nike

我知道 SF 上有很多类似的问题,但我认为我的问题足够不同,值得提出一个新问题。我有一个表,其中有一个列作为 utf8 和 utf8_unicode_ci。它还在此列上有一个唯一的键以及标记语言代码的另一列。列中的数据采用多种不同的文字(带有不同口音的拉丁文、中文和俄文等)。

问题是有时我会想输入两个具有不同含义的单词,这些单词的区别仅在于变音符号(即西类牙语 ano 与 año)。由于 utf8_unicode_ci 不区分大小写和重音,它认为这些是相同的,只会让我输入一个。太糟糕了。理想情况下,我只是将整个列切换到一些不区分大小写但区分重音的排序规则,但这似乎不存在。许多不同的东西都使用这个列,所以我宁愿不将列的默认排序规则更改为 utf8_bin,以免因区分大小写而弄乱东西。

综上所述,我需要一些解决方案,既不会影响命中此列的许多现有查询中的默认大小写敏感性,又能让我添加仅区别于变音符号的词。想法?如果必须的话,我会只将唯一键约束切换为 utf8_bin,但我宁愿不这样做,因为我从不希望表中的两个东西只是大小写不同。

最佳答案

您不必在这里重新发明漏气的轮胎(重新发明车轮)。

MySQL 中有两种西类牙语排序规则:

utf8_spanish_ci(现代西类牙语)和utf8_spanish2_ci(繁体西类牙语)

他们非常了解该语言,知道 N 和 n 应该放在一起,但 Ñ 和 ñ 是 N 和 O 之间的不同字母。在西类牙语中,Ñ 实际上是不同的字母,而不是重音符号。

将您的列排序规则设置为 utf8_spanish_ci,一切都会按您想要的方式工作。

关于MySQL 不区分大小写但区分重音 UTF8 唯一键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11005647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com