程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql大小寫敏感的一個解決方案

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)

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved