MySQL排序规则查询结果

时间:2016-12-28 10:45:37

标签: mysql collation

有没有人解释原因:

SELECT * FROM MY_TABLE WHERE 1 = 1 AND libelle COLLATE latin1_general_ci LIKE '%dég%'

返回1条记录(只有带é的记录)

SELECT * FROM MY_TABLE WHERE 1 = 1 AND libelle COLLATE latin1_swedish_ci LIKE '%dég%'

返回4条记录(当然包括上面的记录)?

根据MySQL doc latin1_general_ci是“多语言(西欧)不区分大小写”所以不应该管理像latin1_swedish_ci这样的口音?

由于 尼古拉斯

1 个答案:

答案 0 :(得分:0)

我怀疑你是否误解了整理是什么。

校对是一组用于自然语言(瑞典语,英语,俄语,日语......)的规则,用于确定单词的字典顺序。在关系数据库中,这用于对数据(例如ORDER BY子句)进行排序并比较数据(例如WHERE子句或唯一索引)。几个例子:

  • 如果您需要按国家/地区名称订购英文,请获取此信息:

    1. 加拿大
    2. 中国
    3. 哥伦比亚

    4. 但是,在传统的西班牙语ch过去是一个独立的字母,所以正确的顺序是:

      1. 加拿大
      2. 哥伦比亚
      3. 中国
    5. 在瑞典语中,å是一个单独的字母,因此即使您已经拥有ångström,也可以使用angström这样的登录名。在其他语言中,它们是重复的,不允许使用。

排序是您用来显示表情符号和其他Unicode字符的内容。这只是编码(ISO-8859-1,UTF-8,UTF-16 ......等等)。