国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

MySQL中varchar的大小寫(xiě)字符比較

發(fā)布時(shí)間:2021-08-26 11:12 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 數據庫 歡迎投稿:712375056

這篇文章主要介紹“中varchar的大小寫(xiě)字符比較”,在日常操作中,相信很多人在MySQL中varchar的大小寫(xiě)字符比較問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對大家解答”MySQL中varchar的大小寫(xiě)字符比較”的疑惑有所幫助!接下來(lái),請跟著(zhù)小編一起來(lái)學(xué)習吧!


背景:
程序某日提出的SQL問(wèn)題, 發(fā)現比較varchar字符串內容的時(shí)候, 大小寫(xiě)不敏感;
測試環(huán)境還原問(wèn)題, 環(huán)境構造如下:

  1. create table case_sen(id int primary key, name varchar(32)notnull);

  2. insert into case_sen values(1,'LucyLoveLily');

  3. insert into case_sen values(2,'lucylovelily');

  4. insert into case_sen values(3,'TomHateLarry');

  5. insert into case_sen values(4,'tomhatelarry');


效果如下:


實(shí)際上程序希望只有id=1的匹配到,  
同樣的問(wèn)題也出現在like里面:


程序有問(wèn)是不是lower_case_table_names的問(wèn)題, 顯然.........不是 _(:з」∠)_

場(chǎng)景:
MySQL-5.7進(jìn)行的還原, 實(shí)際上這個(gè)問(wèn)題和版本沒(méi)有關(guān)系;


分析:
首先可以確認的是, 表內的數據并沒(méi)有問(wèn)題, 該大寫(xiě)的還是大寫(xiě), 該小寫(xiě)的還是小寫(xiě);

那么問(wèn)題最有可能出在MySQL的運算符"="和like上, 這兩類(lèi)運算的原理可能因為某些原因/設置/導致不進(jìn)行大小寫(xiě)區分;

排查方向定下來(lái)以后, 試著(zhù)用關(guān)鍵字comparison, case sensitive在文檔里面找找, 發(fā)現有一個(gè)章節提到了這個(gè)問(wèn)題,并給出了一些示例;
PS: 章節名  B.5.4.1 Case Sensitivity in String Searches

文檔示例如圖:


對文檔的描述進(jìn)行歸納:  非binary類(lèi)型的string進(jìn)行邏輯運算時(shí), 會(huì )依據collate的配置來(lái)計算結果;

所以如果collate的設置對大小寫(xiě)不敏感, 那么就會(huì )出現測試環(huán)境中的效果;

那么問(wèn)題來(lái)了, utf8mb4的默認collate是什么?


發(fā)現是utf8mb4_general_ci, 通過(guò)對文檔內容的分析, 這個(gè)后綴ci代表的意思應該就是case-insensitive ;

那么試著(zhù)換一下字符集的collate, 看看是不是能區分大小寫(xiě);


Bingo~~~

當然, 在列上面指定collate為utf8mb4_bin也可以達到一樣的目的;

PS: mysql的所有字符集默認都使用XXX_general_ci, 而有的字符集會(huì )有XXX_general_cs, 但是utf8是沒(méi)有的, 所以要使用utf8_bin;

PPS: 興趣閱讀: https://www.percona.com/live/europe-amsterdam-2015/sites/default/files/slides/PL_AMS_Unicode_Booking169_v3.pdf

PS: 注意索引喲, 5.7是可以的, <5.7可沒(méi)有試過(guò) ╰(*°▽°*)╯

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

国产精品18久久久久久VR| 亚洲AV无码乱码精品国产| 国产欧美日韩亚洲更新| 免费国产白丝喷水娇喘视频| 无码精品人妻一区二区三区AV| 亚洲日本一区二区三区在线|