记有一次使用mybatis时mysql不区分大小写
记有一次使用mybatis时mysql不区分大小写
sluggarddd 发表于2年前
记有一次使用mybatis时mysql不区分大小写
  • 发表于 2年前
  • 阅读 63
  • 收藏 0
  • 点赞 1
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

摘要: 记一个因为无知犯的错。

    是这样的,我们的数据库都是有专门的人管理的,所以一直也没怎么纠结他的配置,反正已经被别人优化过了。知道有一天,偶然的机会下发现查询过程中mysql在查询过程中,对where中的条件并没有区分大小写。因为还没有遇到这种情况,当时真是一副日了狗的表情。

    当时使用的是Spring+Mybatis,很自然,我把锅丢给了Mybatis,什么玩意儿!居然不区分大小写!然而找了大半圈发现并没有人因为使用了Mybatis出现了这个问题,也没有在文档中找到查询时对于参数的限制。

    于是就上segmentfault上提问了,然后就忘掉了这件事,今天登陆发现有回答解决我的疑惑,所以来记录一下。

    问题出在mysql的设置身上,当时也并非没有怀疑是mysql的问题,然而一样是搜索无果放弃了这个因素。

    好吧,原因也很简单,只是顺便发发牢骚。

    其实跟建立数据库的时候选择的排序规则有关。

    utf8_bin 将字符串中的每一个字符用二进制数据存储,区分大小写。

    utf8_genera_ci 不区分大小写,ci为case insensitive的缩写,即大小写不敏感。

    utf8_general_cs 区分大小写,cs为case sensitive的缩写,即大小写敏感。

    如果想自在几个字段上用改变这些特性,设置列的排序规则即可。

    相信碰到问题的已经恍然大悟了。

    接下来自己调试测试吧。

标签: mysql mybatis
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 7
博文 14
码字总数 11821
×
sluggarddd
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: