早上好,这是我的第一个主题,所以感谢所有得到的帮助。
我正在使用MySQL数据库的Yii应用程序。此数据库有一个国家/地区表,其中包含名为name的列,其中包含utf8_general_ci排序规则。此列由具有特殊字符的数据填充,如Åland群岛
使用Mysql常规排序,列名称没有正确的排序行为,例如:
正确:
阿尔巴尼亚
奥兰群岛
实际:
奥兰群岛
阿尔巴尼亚
参考ASCII表,'Å'是197而不是'A'是65。
我尝试使用Web上的许多解决方案(包括REGEXP),但没有成功。
答案 0 :(得分:1)
在utf8_general_ci中,不同种类的a
(a,A,à,ä等)的顺序没有区别:它们在排序方面都是相同的,你可以在先例中看到链接页面,它们都在字母A
之后的白框中。
如果您想要与特定语言对应的排序顺序,则需要选择与该语言对应的排序规则,这里可能是utf8_swedish_ci,您可以在其中看到ä
和{{1在字母表的末尾。
这是因为不同语言的排序顺序不同,utf8_general_ci不能选择一个而不能选择另一个。例如,在utf8_swedish_ci中,å
在 Å
之前是,而在utf8_icelandic_ci中,Ä
在 {{1}之后是 }。