mysql字符集排序导致查询没有区分大小写问题

之前设置字段 url为 utf8mb4_general_ci,有设置了url为唯一索引,但是

在MySQL中,utf8mb4_general_ci 是一种字符集排序规则(collation)。这里的 utf8mb4 表示字符集,而 _general_ci 表示该字符集下的排序规则。

  • utf8mb4:这是utf8的一个超集,能够存储4个字节的字符,从而支持更多的Unicode字符,包括emoji表情等。它几乎涵盖了世界上所有可见的语言字符。
  • _general_ci:这是一种不区分大小写的排序规则(_ci 代表 case-insensitive,即不区分大小写)。它使用一般的比较和排序算法,不基于Unicode标准。

使用 utf8mb4_general_ci 排序规则意味着在比较和排序字符串时,不会区分字符的大小写。例如,字符串 "apple" 和 "Apple" 在排序或比较时会被视为相同的。

这种排序规则在大多数情况下是足够的,但如果你需要更精确的Unicode排序(例如,对于某些特殊语言或字符集),或者你需要区分大小写,那么可能需要选择其他的排序规则,如 utf8mb4_bin

如果需要区分大小写就不能使用 _ci这种字符集排序规则

posted @ 2024-03-20 09:24  study_php_java_C++  阅读(53)  评论(0编辑  收藏  举报