Heim >Datenbank >MySQL-Tutorial >mysql大小写敏感的一个解决方案

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

WBOY
WBOYOriginal
2016-06-07 16:18:311192Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn