温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

解决MySQL查询不区分大小写的方法

发布时间:2021-09-15 10:29:18 来源:亿速云 阅读:154 作者:chen 栏目:数据库

本篇内容主要讲解“解决MySQL查询不区分大小写的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“解决MySQL查询不区分大小写的方法”吧!

今天遇到一个情况, 查询数据时查询条件输入不管大小写,都能查到同样的数据。 比如: 输入 aaa  或者aaA ,AAA都能查询同样的结果,说明查询条件是大小写不敏感的。
 
因为程序使用了hibernate框架访问mysql。 一开始以为是hibernate的问题。 最跟踪了一下hibernate代码没有看到转换大小写的步骤,最后确认hibernate其实只不过是将hql转化为sql。大小写不敏感和 hibernate没有关系。
 
于是怀疑Mysql的问题。做个实验:直接使用客户端用sql查询数据库。 发现的确是大小不敏感 。
 
通过查询资料发现需要设置collate(校对) 。 collate规则:
 
 *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的
 *_cs: case sensitive collation,区分大小写
 *_ci: case insensitive collation,不区分大小写
  www.2cto.com  
解决方法。
 
1.可以将查询条件用binary()括起来。  比如:     select  * from TableA  where  columnA like binary('aaa');
 
2. 可以修改该字段的collation 为 binary
 
比如:
 
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;
 
问题解决。

到此,相信大家对“解决MySQL查询不区分大小写的方法”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI