Mysql區分某個欄位大小寫解決方案

來源:互聯網
上載者:User

標籤:mysql 欄位 大小寫

今天生產環境mysql遇到了一個問題,某個應用在生產環境中是區分大寫的,但是mysql中是不區分大小寫,這就坑爹了,查出來的資料有兩條,程式就報錯了說它不知所措了,咋辦。。。咋辦。。。百度後查到瞭解決辦法,如下:

  • mysql預設是區分大小寫,如果做過某些配置,那麼就不區分大小了,可以通過show Variables like ‘%table_names‘查看lower_case_table_names的值,0代表區分,1代表不區分。

  • Linux下的MYSQL預設是要區分表名大小寫 ,而在windows下表名不區分大小寫讓MYSQL不區分表名大小寫方法其實很簡單:

  1.用ROOT登入,修改/etc/my.cnf

  2.在[mysqld]下加入一行:lower_case_table_names=1

  3.重新啟動資料庫即可

  • mysql欄位varchar區分大小寫utf8_bin、utf8_general_ci編碼區別

    在mysql中存在著各種utf8編碼格式:

    utf8_bin將字串中的每一個字元用位元據儲存,區分大小寫。

    utf8_genera_ci不區分大小寫,ci為case insensitive的縮寫,即大小寫不敏感。

    utf8_general_cs區分大小寫,cs為case sensitive的縮寫,即大小寫敏感。

    用utf8_genera_ci沒有區分大小寫,導致這個欄位的內容區分大小寫時出問題,比如作為區分大小寫code或者驗證碼時就出問題了。

    utf8_general_cs這個選項一般沒有,所以只能用utf8_bin區分大小寫


  解決方案一:

    開啟設計表後:我們會看到如下選項:

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/8F/3E/wKioL1jYs0vyuBR2AAA-NqN-mKA340.png" title="QQ圖片20170327143732.png" alt="wKioL1jYs0vyuBR2AAA-NqN-mKA340.png" />

utf8_general_ci:不區分大小寫

utf8_bin:區分大小寫


 But:使用上面的解決方案並不好如果是這樣的話,可能會波及到其它表或欄位等一些想象不到的問題,故而有了下面的解決方案,解決方案二:

 查詢的時候在where後面加一個關鍵字BINARY,那麼後面的關係就是以二進位的方式進行尋找了

 SELECT * FROM TAB_NAME WHERE BINARY url = ‘‘; 


本文出自 “學習改變命運” 部落格,請務必保留此出處http://xinsir.blog.51cto.com/5038915/1910722

Mysql區分某個欄位大小寫解決方案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.