Mysql查询不区分大小写怎么办

这两天想要初始化一批测试数据,突然发现频繁出现用户名重复的问题,但是代码已经做了重复用户名的集合剔除处理,后面研究发现是Mysql大小写导致的问题

image.png
image.png
image.png

遇到这种情况,我们首先要了解一下,为什么MySQL没有区分大小写了。这个就跟数据库属性 [数据库排序规则] 有关系了

image.png

从MySQL 8.0.1版本开始,支持_cs(case sensitive collation)排序规则。在此版本之前,MySQL仅支持_bin(binary collation)排序规则,它是区分大小写的)
*_bin: 表示的是binary case sensitive collation,区分大小写的二进制排序规则
*_cs: 表示的是case sensitive collation,区分大小写的排序规则
*_ci: 表示的是case insensitive collation,不区分大小写的排序规则

解决办法:

解决方案一:
修改数据库排序规则,明确选择 *_bin 或者 *_cs 的

解决方案二:
使用关键字BINARY修饰
SELECT COUNT( * ) FROM admin WHERE BINARY user_name = 'rO';

解决方案三:
修改数据库字段属性为varbinary数据类型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容