gpt4 book ai didi

mysql 不考虑重音来验证索引键的唯一性

转载 作者:行者123 更新时间:2023-11-29 05:45:58 25 4
gpt4 key购买 nike

我有一个表,其中只有一个名为“tag”的字段,它是一个 varchar(250)

该字段使用排序规则“latin1_spanish_ci”定义,因为我打算用西类牙语保存单词...

问题是下面的查询

select * from test where tag = 'unó'

给我完全一样的结果

select * from test where tag = 'uno'

也就是说,对于 mysql,'uno' = 'unó'... and 'unò', and 'unö'... etc...

这个字段应该有一个唯一的键...

我尝试了其他归类,所有“bin”归类似乎都有效,而且 latin1_general_ci 也是...

我只是想知道这是否适合为数据库中的每个字段选择排序规则,或者我在选择它时是否会遇到任何问题...考虑到我打算存储西类牙数据在那个数据库中...

敬礼

SAS

ps:无论如何,在西类牙语排序规则中重音被认为是无意义的似乎真的很奇怪......

--

编辑:我做了几个测试,我用 á Á é É ñ Ñ 等输入数据,看来 mysql 真的可以处理它们......

最佳答案

您可以使用 latin1_general_ci 作为默认的数据库/表/列排序规则,并在需要时根据每个选择指定 latin1_spanish_ci:

select * from test order by tag collate latin1_spanish_ci;
select * from test where tag = 'uno' collate latin1_spanish_ci;

因为 'o'、'ó' 等在 latin1_spanish_ci 中被认为是相等的,如果表包含例如'uno'、'unó' 和 'unò'。

关于mysql 不考虑重音来验证索引键的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2010951/

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