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这种字符集排序规则
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2019-03-20 PDO查询结果中文乱码