mysql大小寫(xiě)敏感的一個(gè)解決方案_MySQL
來(lái)源:懂視網(wǎng)
責(zé)編:小采
時(shí)間:2020-11-09 20:11:27
mysql大小寫(xiě)敏感的一個(gè)解決方案_MySQL
mysql大小寫(xiě)敏感的一個(gè)解決方案_MySQL:今天,有同事告訴我,我們游戲登陸的時(shí)候,賬號(hào)和密碼沒(méi)有區(qū)分大小寫(xiě),后來(lái)又發(fā)現(xiàn)創(chuàng)建賬號(hào)和角色也沒(méi)有區(qū)分大小寫(xiě)。思考登陸流程之后,應(yīng)該是Mysql沒(méi)有區(qū)分大小寫(xiě)敏感的問(wèn)題。在網(wǎng)上查了一下資料,Mysql支持大小寫(xiě)敏感的解決方案。發(fā)現(xiàn)了幾種方案。第一、修改
導(dǎo)讀mysql大小寫(xiě)敏感的一個(gè)解決方案_MySQL:今天,有同事告訴我,我們游戲登陸的時(shí)候,賬號(hào)和密碼沒(méi)有區(qū)分大小寫(xiě),后來(lái)又發(fā)現(xiàn)創(chuàng)建賬號(hào)和角色也沒(méi)有區(qū)分大小寫(xiě)。思考登陸流程之后,應(yīng)該是Mysql沒(méi)有區(qū)分大小寫(xiě)敏感的問(wèn)題。在網(wǎng)上查了一下資料,Mysql支持大小寫(xiě)敏感的解決方案。發(fā)現(xiàn)了幾種方案。第一、修改

今天,有同事告訴我,我們游戲登陸的時(shí)候,賬號(hào)和密碼沒(méi)有區(qū)分大小寫(xiě),后來(lái)又發(fā)現(xiàn)創(chuàng)建賬號(hào)和角色也沒(méi)有區(qū)分大小寫(xiě)。思考登陸流程之后,應(yīng)該是Mysql沒(méi)有區(qū)分大小寫(xiě)敏感的問(wèn)題。
在網(wǎng)上查了一下資料,Mysql支持大小寫(xiě)敏感的解決方案。發(fā)現(xiàn)了幾種方案。
第一、修改數(shù)據(jù)庫(kù)的設(shè)置,讓Mysql支持大小寫(xiě)敏感,這個(gè)方案太激進(jìn)了,數(shù)據(jù)庫(kù)數(shù)據(jù)太多,這樣改保不準(zhǔn)會(huì)出什么問(wèn)題。
第二、修改表結(jié)構(gòu)和字符集,和第一種方案差不多,但是風(fēng)險(xiǎn)小一點(diǎn)。
第三、修改存儲(chǔ)過(guò)程或者SQL語(yǔ)句,好處是不動(dòng)數(shù)據(jù)庫(kù)結(jié)構(gòu),缺點(diǎn)是涉及到的地方都的改。
權(quán)衡之后,還是選了第三種方案,只修改登錄和創(chuàng)建的2個(gè)存儲(chǔ)過(guò)程。
體方法是,使用mysql的binary關(guān)鍵字。
BINARY不是函數(shù),是類型轉(zhuǎn)換運(yùn)算符,它用來(lái)強(qiáng)制它后面的字符串為一個(gè)二進(jìn)制字符串,可以理解為在字符串比較的時(shí)候區(qū)分大小寫(xiě)。
測(cè)試如下:
mysql> select binary 'ABCD'='abcd' ret1, 'ABCD'='abcd' ret2;
+--------+--------+
| ret1 | ret2 |
+--------+--------+
| 0 | 1 |
+--------+--------+
1 row in set (0.00 sec)
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
mysql大小寫(xiě)敏感的一個(gè)解決方案_MySQL
mysql大小寫(xiě)敏感的一個(gè)解決方案_MySQL:今天,有同事告訴我,我們游戲登陸的時(shí)候,賬號(hào)和密碼沒(méi)有區(qū)分大小寫(xiě),后來(lái)又發(fā)現(xiàn)創(chuàng)建賬號(hào)和角色也沒(méi)有區(qū)分大小寫(xiě)。思考登陸流程之后,應(yīng)該是Mysql沒(méi)有區(qū)分大小寫(xiě)敏感的問(wèn)題。在網(wǎng)上查了一下資料,Mysql支持大小寫(xiě)敏感的解決方案。發(fā)現(xiàn)了幾種方案。第一、修改