MySQL匹配不區(qū)分大小寫怎么解決

場景是這樣的嘱吗,小馬在搞一個類似匹配口令兌換獎勵的項(xiàng)目,比如類似淘口令整以,aaBbC兌換禮品 A禮包胧辽。最簡單的實(shí)現(xiàn)方式就是MySQL記錄口令碼和禮包映射,然后查詢匹配公黑。一切似乎看起來沒啥問題邑商,然而產(chǎn)品提出了一個問題,如果用AaBbC或者AABbC也能兌換成功帆调,說明MySQL的查詢語句是能匹配的奠骄。本質(zhì)上,如果業(yè)務(wù)允許這么兼容大小寫匹配也問題不大番刊,但是因?yàn)橐恍┢渌麊栴}的設(shè)置含鳞,比如根據(jù)口令碼緩存,那么就會很多的緩存key芹务,顯然不是很合理蝉绷。于是,就有了下面的分享枣抱。

mysql查詢不區(qū)分大小寫

小馬的語句大概如下:

select * from TableA? where? keyword= 'aaBbC';

于是把語句換成:

select * from TableA? where? keyword= 'AaBbC';

果然是匹配的熔吗,說明查詢條件對大小寫不敏感。那么是什么問題呢佳晶?也就是SQL默認(rèn)匹配字符集是不會區(qū)分大小寫的桅狠。

兩種解決方案

1、在SQL中使用BINARY

BINARY運(yùn)算符將緊隨其后的 string 轉(zhuǎn)換為二進(jìn)制字符串轿秧。

主要用來強(qiáng)制進(jìn)行按字節(jié)進(jìn)行比較(byte by byte),字節(jié)而不是字符的字符中跌。這使得字符串比較是區(qū)分大小寫的, 不管原始的列定義是否是 BINARY 或者 BLOB。BINARY 也對字符串末尾的空格敏感菇篡。

于是改后語句如下:

select * from TableA? where? binary keyword= 'aaBbC';

小馬親測可行漩符。但要注意此種解決方案中的SQL語法是否能被當(dāng)前項(xiàng)目的DB層識別,因?yàn)橛行┦荄B代理或者框架封裝的DB底層可能不認(rèn)識這個語法驱还。

2嗜暴、修改字段的字符集

ALTER? TABLE? TableA?? MODIFY? COLUMN? keyword? VARCHAR(50)? BINARY? CHARACTER? SET? utf8 COLLATE utf8_bin;

對于CHAR凸克、VARCHAR和TEXT類型,BINARY屬性可以為列分配該列字符集的 校對規(guī)則闷沥。

BINARY屬性是指定列字符集的二元 校對規(guī)則的簡寫萎战,排序和比較基于數(shù)值字符值。因此也就自然區(qū)分了大小寫狐赡。


問題來了撞鹉,如果直接設(shè)置成BINARY 類型呢,是不是也就直接支持了大小寫匹配颖侄?


微微一笑
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸟雏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子览祖,更是在濱河造成了極大的恐慌孝鹊,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件展蒂,死亡現(xiàn)場離奇詭異又活,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)锰悼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門柳骄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人箕般,你說我怎么就攤上這事耐薯。” “怎么了丝里?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵曲初,是天一觀的道長。 經(jīng)常有香客問我杯聚,道長臼婆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任幌绍,我火速辦了婚禮颁褂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘傀广。我一直安慰自己痢虹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布主儡。 她就那樣靜靜地躺著,像睡著了一般惨缆。 火紅的嫁衣襯著肌膚如雪糜值。 梳的紋絲不亂的頭發(fā)上丰捷,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音寂汇,去河邊找鬼病往。 笑死,一個胖子當(dāng)著我的面吹牛骄瓣,可吹牛的內(nèi)容都是我干的停巷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼榕栏,長吁一口氣:“原來是場噩夢啊……” “哼畔勤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起扒磁,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤庆揪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后妨托,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缸榛,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年兰伤,在試婚紗的時候發(fā)現(xiàn)自己被綠了内颗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡敦腔,死狀恐怖均澳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情会烙,我是刑警寧澤负懦,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站柏腻,受9級特大地震影響纸厉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜五嫂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一颗品、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沃缘,春花似錦躯枢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至水慨,卻和暖如春得糜,著一層夾襖步出監(jiān)牢的瞬間敬扛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工朝抖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啥箭,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓治宣,卻偏偏與公主長得像急侥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子侮邀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353