mysql 大小写敏感的一个解决方案

     今天,有同事告诉我,我们游戏登陆的时候,账号和密码没有区分大小写,后来又发现创建账号和角色也没有区分大小写。思考登陆流程之后,应该是Mysql没有区分大小写敏感的问题。

     在网上查了一下资料,Mysql支持大小写敏感的解决方案。发现了几种方案。

     第一、修改数据库的设置,让Mysql支持大小写敏感,这个方案太激进了,数据库数据太多,这样改保不准会出什么问题。

     第二、修改表结构和字符集,和第一种方案差不多,但是风险小一点。

     第三、修改存储过程或者SQL语句,好处是不动数据库结构,缺点是涉及到的地方都的改。

     权衡之后,还是选了第三种方案,只修改登录和创建的2个存储过程。

     体方法是,使用mysql的binary关键字。

     BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写。

     测试如下:      mysql> select binary 'ABCD'='abcd' ret1, 'ABCD'='abcd' ret2;      +--------+--------+      |   ret1  |   ret2 |      +--------+--------+      |    0     |     1    |      +--------+--------+      1 row in set (0.00 sec)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术专栏

慕课网Flask构建可扩展的RESTful API-1. 起步与红图

1.蓝图的作用并不是用来拆分视图函数的,而是用来拆分模块的 2.使用蓝图,统一个业务模型的试图函数的前缀都一样,代码重复啰嗦

44120
来自专栏Java进阶架构师

手把手带你实现JDK动态代理

业务接口Interface、业务实现类target、业务处理类Handler、JVM在内存中生成的动态代理类$Proxy0

8420
来自专栏wblearn

tomcat程序部署到weblogic遇到的问题:对于字符串空的处理不一样

最近将本地tomcat项目部署到weblogic服务器,某个模块下数据加载不出来,很奇怪,在本地tomcat下此模块下数据都可以完整显示出来,怎么到服务器就不行...

10220
来自专栏Java工程师日常干货

纯手写实现JDK动态代理前言JDK动态代理 手写代码实现JDK动态代理

在Java领域,动态代理应用非常广泛,特别是流行的Spring/MyBatis等框架。JDK本身是有实现动态代理技术的,不过要求被代理的类必须实现接口,不过cg...

10520
来自专栏CRPER折腾记

Vue折腾记 - (2)写一个不大靠谱的面包屑组件

我把页面标题和面包屑封装到一起..就不用涉及到组件的通讯了, 不然又要去监听路由或者依赖状态去获取

17020
来自专栏专业duilib使用+业余界面开发

mysql5.7 安装,服务启动失败无data目录处理

25530
来自专栏喵了个咪的博客空间

phalcon-入门篇5(请求与返回)

#phalcon-入门篇5(请求与返回)# ? 本教程基于phalcon2.0.9版本 ##前言## 先在这里感谢各位phalcon技术爱好者,我们提供这样一个...

414130
来自专栏魏琼东

一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-ORM访问器及其配置

系列回顾          本系列前面有三篇文章介绍和演示了AgileEAS.NET平台ORM组件的开发流程及其常见的使用方式,通过前面的三篇文章,大家都可以正...

20490
来自专栏FreeBuf

一个漏洞为何能影响数千万服务器以及66%安卓手机?

安全研究团队Perception Point发现Linux系统内核中存在一个高危级别的本地权限提升0day漏洞,编号为CVE-2016-0728。目前有超过66...

23050
来自专栏零基础使用Django2.0.1打造在线教育网站

让 HTTP 服务人类的Requests库

今天要谈的是requests库,这是一个功能强大的库,也是唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。为什么这么说呢,还是因为它真的太强...

20220

扫码关注云+社区

领取腾讯云代金券