您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)使用mysql 怎么實(shí)現(xiàn)一個(gè)默認(rèn)排序規(guī)則,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
mysql默認(rèn)varchar類(lèi)型是對(duì)大小寫(xiě)不敏感(不區(qū)分),如果想要mysql區(qū)分大小寫(xiě)需要設(shè)置排序規(guī)則:
utf8_bin將字符串中的每一個(gè)字符用二進(jìn)制數(shù)據(jù)存儲(chǔ),區(qū)分大小寫(xiě)。
utf8_genera_ci不區(qū)分大小寫(xiě),ci為case insensitive的縮寫(xiě),即大小寫(xiě)不敏感。
utf8_general_cs區(qū)分大小寫(xiě),cs為case sensitive的縮寫(xiě),即大小寫(xiě)敏感。
用utf8_genera_ci沒(méi)有區(qū)分大小寫(xiě),導(dǎo)致這個(gè)字段的內(nèi)容區(qū)分大小寫(xiě)時(shí)出問(wèn)題,比如作為區(qū)分大小寫(xiě)的code或者驗(yàn)證碼時(shí)就出問(wèn)題了。
utf8_general_cs這個(gè)選項(xiàng)一般沒(méi)有,所以只能用utf8_bin區(qū)分大小寫(xiě)。
1)設(shè)置排序規(guī)則是可逆的,如果之前設(shè)置的排序規(guī)則不符合,更換排序規(guī)則后,可能出現(xiàn)亂碼,當(dāng)再次恢復(fù)原來(lái)的排序規(guī)則后,亂碼即消失。
2)可以將varchar 類(lèi)型改為 varbinary
3)如果已經(jīng)使用了默認(rèn)的排序規(guī)則,即utf8_genera_ci,而又想查詢(xún)結(jié)果大小寫(xiě)區(qū)分,可以在查詢(xún)時(shí)進(jìn)行限定:
select binary column from table;
或者
select column2 from table where binary cloumn;
補(bǔ)充:mysql中的字符集和排序規(guī)則
字符是各種文字和符號(hào)的總稱(chēng),字符集就是字符的集合。常見(jiàn)字符集名稱(chēng):ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。
計(jì)算機(jī)要識(shí)別各種字符集文字,就需要字符編碼。所以有些字符集一個(gè)字符是2個(gè)字節(jié),有些字符集一個(gè)字符是3個(gè)字節(jié)。
utf_bin和utf_general_ci這兩者到底有什么區(qū)別。
ci是case insensitive, 即"大小寫(xiě)不敏感",a 和 A 會(huì)在字符判斷中會(huì)被當(dāng)做一樣的;
bin是二進(jìn)制, a 和A 會(huì)別區(qū)別對(duì)待.
utf8_general_ci不區(qū)分大小寫(xiě),這個(gè)你在注冊(cè)用戶(hù)名和郵箱的時(shí)候就要使用。
utf8_general_cs區(qū)分大小寫(xiě),如果用戶(hù)名和郵箱用這個(gè) 就會(huì)照成不良后果
utf8_bin:字符串每個(gè)字符串用二進(jìn)制數(shù)據(jù)編譯存儲(chǔ)。區(qū)分大小寫(xiě),而且可以存二進(jìn)制的內(nèi)容
看完上述內(nèi)容,你們對(duì)使用mysql 怎么實(shí)現(xiàn)一個(gè)默認(rèn)排序規(guī)則有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。