Mysql 是否存在utf8\U unicode\U cs排序规则?
有人知道MySQL是否存在utf8\uUnicode\uCS排序规则吗?到目前为止,我的搜索结果是干涸的。如果它根本不存在,那么创建一个是否相当直接?或者以某种方式使用utf8\u unicode\u ci或utf8\u bin,但“模拟”人们对utf8\u unicode\u cs排序规则的期望?我遇到了同样的问题,在谷歌搜索之后,MySQL似乎没有包含它。正如你所说的“模拟它” 1) 为确保数据库中区分大小写:将表格列设置为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
utf8\u bin
collation
这允许:
- 严格选择:
不会返回带有“Joe”/“Joe”/“Joe”等的行SELECT“Joe”
- 严格唯一索引:具有唯一索引的列将把大小写差异视为不同的值。例如,如果使用utf8\U unicode\U ci排序规则,则在已具有“Joe”的表上插入“Joe”将触发“重复键”错误。如果使用ut8_bin,则插入“Joe”即可
这是一个老问题,但似乎没有被任何其他问题所取代,所以我认为事情已经改变了,这是值得一提的 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.