Mysql unicode字符串:Habo和Håbo之间的区别

Mysql unicode字符串:Habo和Håbo之间的区别,mysql,unicode,collation,Mysql,Unicode,Collation,现在我处理瑞典地理数据 在瑞典有两个不同的地方:哈博和哈博 如果运行查询,如SELECT*FROM g2_se_raw_zip,其中省等于'Håbo',或SELECT*FROM g2_se_raw_zip,其中省为'Håbo',它也会给我Habo 我对GROUP BY和其他查询也有同样的问题 它为什么会这样工作以及如何修复它 其他信息: 字符集客户端utf8, 字符集连接utf8, 字符集数据库utf8, 字符集文件系统二进制, 字符集结果utf8, 字符集服务器utf8, 字符集系统utf8,

现在我处理瑞典地理数据 在瑞典有两个不同的地方:哈博和哈博

如果运行查询,如SELECT*FROM g2_se_raw_zip,其中省等于'Håbo',或SELECT*FROM g2_se_raw_zip,其中省为'Håbo',它也会给我Habo

我对GROUP BY和其他查询也有同样的问题

它为什么会这样工作以及如何修复它

其他信息: 字符集客户端utf8, 字符集连接utf8, 字符集数据库utf8, 字符集文件系统二进制, 字符集结果utf8, 字符集服务器utf8,
字符集系统utf8,

这是一个排序问题。瑞典词典将o形圈和o形圈视为字母表中不同的字母,而国际校勘将它们视为同一字母的不同变体

这些查询应该对您有帮助

SELECT * 
  FROM g2_se_raw_zip 
 WHERE province COLLATE utf8_swedish_ci EQUALS 'Håbo'


SELECT * 
  FROM g2_se_raw_zip 
 WHERE province COLLATE utf8_swedish_ci = 'Håbo'
为了提高索引性能,您可能希望将数据库中包含瑞典语地名的列的排序规则设置更改为瑞典语排序规则。但是,如果你正在开发一个泛欧应用程序,你可能更愿意让用户在他们的用户配置文件中告诉你他们自己的国家语言,这样你就可以以满足他们期望的方式进行搜索