我有一个只有一个名为“tag”的字段的表,它是一个varchar(250)
该字段是用排序规则“latin1_spanish_ci”定义的,因为我计划用西班牙语保存单词。。。
问题是下面的查询
select * from test where tag = 'unó'
给我的结果和
select * from test where tag = 'uno'
也就是说,对于mysql,'uno'='uno'。。。还有“unò”和“unò”。。。等。。。
这个领域被认为有一个独特的关键。。。
我试着和其他的校勘,所有的“宾”校勘似乎都起作用了,还有拉美裔的将军也。。。
我只想知道这是否是为数据库中的每个字段选择合适的排序规则,或者我是否可能在选择它时遇到任何问题。。。考虑到我计划在数据库中存储西班牙语数据。。。
萨卢多斯
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;
由于在
latin1_spanish_ci
中“o”、“ó”等被视为相等,如果表中包含“uno”、“unó”和“unò”,后一个语句将返回多个结果。