MySQL区分大小写
本文共 1,342 字,预计阅读时间 4 分钟
在使用MySQL查询数据时发现,不管大小写都能查询到数据,也就是说其对大小写不敏感,没有区分大小写。先看下面的案例:
1.演示案例
1)创建表插入数据
CREATE TABLE `user` ( `username` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO user(username, password) VALUES ('abc', '123'); INSERT INTO user(username, password) VALUES ('Abc', '456'); INSERT INTO user(username, password) VALUES ('bcd', '444');
2)查询
select * from user where username = 'abc';
结果如下:
查询username是"abc"的结果把"Abc"的也查询出来了。若需要区分大小写,需要进行配置。
2.解决办法
2.1方法一:查询时区分
在查询时,在where关键字后面添加binary关键字,那么就会区分大小写去查询。
select * from user where binary username = 'abc';
2.2方法二:修改字段属性区分
字段默认的规则是ut8***_ci。以 “_ci" 结尾的表示不区分大小写,以 “_bin" 结尾的表示区分大小写。
修改需要区分大小写的字段的校对规则为utf8****_bin ,需要进行大小写区分
ALTER TABLE user MODIFY COLUMN username varchar(255) BINARY CHARACTER SET utf8 COLLATE utf8_bin;
修改后查询,便会区分大小写
select * from user where username = 'abc';
2.3方法三:创建表时区分
在创建表时指定binary,那么可以直接查询,,也很方便。
CREATE TABLE `user` ( `username` varchar(255) binary DEFAULT NULL, `password` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2020-05-17 Mybatis-plus基本用法