简体   繁体   English

MySQL排序规则查询结果

[英]MySQL collation query results

does anyone has explaination why : 有谁能解释为什么:

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

returns 1 record (only the record with é) while 返回1条记录(仅包含é的记录),而

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

returns 4 record (of course including the one above) ? 返回4条记录(当然包括上面的一条)?

According to MySQL doc latin1_general_ci is "Multilingual (Western European) case insensitive" so should not it manage accents like latin1_swedish_ci ? 根据MySQL的文档, latin1_general_ci是“多语言(西欧)不区分大小写”,因此它不应该管理像latin1_swedish_ci这样的重音吗?

Thanks Nicolas 谢谢尼古拉斯

I suspect you're misunderstanding what collation is. 我怀疑您误会了什么排序规则。

Collation is a set of rules used in natural language (Swedish, English, Russian, Japanese...) to determine the dictionary order of words. 排序规则是自然语言(瑞典语,英语,俄语,日语...)中使用的一组规则,用于确定单词的字典顺序。 In relational databases, this is used to sort data (eg ORDER BY clauses) and to compare data (eg WHERE clauses or unique indexes). 在关系数据库中,这用于排序数据(例如ORDER BY子句)和比较数据(例如WHERE子句或唯一索引)。 A couple of examples: 几个例子:

  • If you need to order by country name in English you get this: 如果您需要使用英语按国家/地区名称订购,则会得到以下信息:

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


    However, in traditional Spanish ch used to be an independent letter so correct order was this: 但是,在传统的西班牙语中, ch曾经是一个独立的字母,因此正确的顺序是:

    1. Canada 加拿大
    2. Colombia 哥伦比亚
    3. China 中国
  • In Swedish, å is a separate letter so you can have a login name like ångström even if you already have angström . 在瑞典语中, å是单独的字母,因此即使您已经有angström ,也可以使用ångström这样的登录名。 In other languages they'd be duplicates and would not be allowed. 在其他语言中,它们将是重复的,并且是不允许的。

Collation is not something you use to display emojis and other Unicode characters. 排序规则不是用来显示表情符号和其他Unicode字符的东西。 That's just encoding (ISO-8859-1, UTF-8, UTF-16... whatever). 那只是编码 (ISO-8859-1,UTF-8,UTF-16等等)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM