Mysql 是否存在utf8\U unicode\U cs排序规则?

Mysql 是否存在utf8\U unicode\U cs排序规则?,mysql,utf-8,collation,Mysql,Utf 8,Collation,有人知道MySQL是否存在utf8\uUnicode\uCS排序规则吗?到目前为止,我的搜索结果是干涸的。如果它根本不存在,那么创建一个是否相当直接?或者以某种方式使用utf8\u unicode\u ci或utf8\u bin,但“模拟”人们对utf8\u unicode\u cs排序规则的期望?我遇到了同样的问题,在谷歌搜索之后,MySQL似乎没有包含它。正如你所说的“模拟它” 1) 为确保数据库中区分大小写:将表格列设置为utf8\u bincollation 这允许: 严格选择:SEL

有人知道MySQL是否存在utf8\uUnicode\uCS排序规则吗?到目前为止,我的搜索结果是干涸的。如果它根本不存在,那么创建一个是否相当直接?或者以某种方式使用utf8\u unicode\u ci或utf8\u bin,但“模拟”人们对utf8\u unicode\u cs排序规则的期望?

我遇到了同样的问题,在谷歌搜索之后,MySQL似乎没有包含它。正如你所说的“模拟它”

1) 为确保数据库中区分大小写:将表格列设置为
utf8\u bin
collation
这允许:

  • 严格选择:
    SELECT“Joe”
    不会返回带有“Joe”/“Joe”/“Joe”等的行
  • 严格唯一索引:具有唯一索引的列将把大小写差异视为不同的值。例如,如果使用utf8\U unicode\U ci排序规则,则在已具有“Joe”的表上插入“Joe”将触发“重复键”错误。如果使用ut8_bin,则插入“Joe”即可
2) 要在结果中获得正确的顺序,请将排序规则添加到SQL查询:


这是一个老问题,但似乎没有被任何其他问题所取代,所以我认为事情已经改变了,这是值得一提的

MySQL版本8现在具有以下utf8mb4排序规则:

 utf8mb4_0900_ai_ci 
 utf8mb4_0900_as_ci
 utf8mb4_0900_as_cs
 ... and many language-specific variants of same.
(据我所知,没有,但在任何情况下都不太有用:几乎没有理由将[a]和[a-急性]分组,然后分别将[a]和[a-急性]分组。)

原始问题假设的“utf8_unicode_cs”的目的由utf8mb4_0900_as_cs实现。(0900表示它使用Unicode V9.0.0,而utf8_Unicode_ci使用4.0.0。)

要使用这些字符,您需要将字段从utf8更改为utf8mb4字符集,但这通常是个好主意,因为旧的3字节最大编码无法处理表情符号和其他非BMP字符

资料来源:

 utf8mb4_0900_ai_ci 
 utf8mb4_0900_as_ci
 utf8mb4_0900_as_cs
 ... and many language-specific variants of same.