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