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 @   study_php_java_C++  阅读(85)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2019-03-20 PDO查询结果中文乱码
点击右上角即可分享
微信分享提示