Home > Database > Mysql Tutorial > body text

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

WBOY
Release: 2016-06-07 16:18:31
Original
1055 people have browsed it

今天,有同事告诉我,我们游戏登陆的时候,账号和密码没有区分大小写,后来又发现创建账号和角色也没有区分大小写。思考登陆流程之后,应该是Mysql没有区分大小写敏感的问题。 在网上查了一下资料,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)

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!