【问题标题】:Mysql Natural sort with special characters带有特殊字符的Mysql自然排序
【发布时间】:2016-09-10 05:26:03
【问题描述】:

早上好,这是我的第一个主题,所以感谢所有即将到来的帮助。

我在一个带有 MySQL 数据库的 Yii 应用程序中工作。这个数据库有一个国家表,该表有一个名为 name 的列,带有一个 utf8_general_ci 排序规则。此列由带有特殊字符的数据填充,如奥兰群岛

使用Mysql常规排序,列名没有正确的排序行为,例如:

正确:
阿尔巴尼亚
奥兰群岛

实际:
奥兰群岛
阿尔巴尼亚

参考 ASCII 表,'Å' 是 197,而不是 'A' 是 65。

我尝试使用网络上的许多解决方案(包括 REGEXP),但均未成功。

【问题讨论】:

    标签: php mysql yii


    【解决方案1】:

    utf8_general_ci中,不同种类的a(a、A、à、ä等)的顺序没有区别:它们在排序上都是相等的,您可以在前面的链接页面中看到它们字母A之后都在白框中。

    如果你想要一个特定语言对应的排序顺序,你需要选择那个语言对应的排序规则,这里可能是utf8_swedish_ci,你可以看到äå在最后字母表。

    这是因为不同语言的排序顺序是不一样的,utf8_general_ci不能一选一。例如,在 utf8_swedish_ci 中,Åbefore Ä,而在 utf8_icelandic_ci 中,Åafter Ä

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      • 2019-01-21
      • 2014-05-20
      • 2016-03-07
      • 1970-01-01
      相关资源
      最近更新 更多