MySql查詢(xún)不區(qū)分大小寫(xiě)解決方案(兩種)
當(dāng)我們輸入不管大小寫(xiě)都能查詢(xún)到數(shù)據(jù),例如:輸入 aaa 或者aaA ,AAA都能查詢(xún)同樣的結(jié)果,說(shuō)明查詢(xún)條件對(duì)大小寫(xiě)不敏感。
解決方案一:
于是懷疑Mysql的問(wèn)題。做個(gè)實(shí)驗(yàn):直接使用客戶(hù)端用sql查詢(xún)數(shù)據(jù)庫(kù)。 發(fā)現(xiàn)的確是大小不敏感 。
通過(guò)查詢(xún)資料發(fā)現(xiàn)需要設(shè)置collate(校對(duì)) 。 collate規(guī)則:
*_bin: 表示的是binary case sensitive collation,也就是說(shuō)是區(qū)分大小寫(xiě)的
*_cs: case sensitive collation,區(qū)分大小寫(xiě)
*_ci: case insensitive collation,不區(qū)分大小寫(xiě)
解決方法。
1.可以將查詢(xún)條件用binary()括起來(lái)。 比如:
select * from TableA where binary columnA ='aaa';
2. 可以修改該字段的collation 為 binary
比如:
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;
解決方案二:
mysql查詢(xún)默認(rèn)是不區(qū)分大小寫(xiě)的 如:
select * from some_table where str=‘a(chǎn)bc'; select * from some_table where str='ABC';
得到的結(jié)果是一樣的,如果我們需要進(jìn)行區(qū)分的話可以按照如下方法來(lái)做:
第一種方法:
要讓mysql查詢(xún)區(qū)分大小寫(xiě),可以:
select * from some_table where binary str='abc' select * from some_table where binary str='ABC'
第二方法:
在建表時(shí)時(shí)候加以標(biāo)識(shí)
create table some_table( str char(20) binary )
原理:
對(duì)于CHAR、VARCHAR和TEXT類(lèi)型,BINARY屬性可以為列分配該列字符集的 校對(duì)規(guī)則。BINARY屬性是指定列字符集的二元 校對(duì)規(guī)則的簡(jiǎn)寫(xiě)。排序和比較基于數(shù)值字符值。因此也就自然區(qū)分了大小寫(xiě)。
以上通過(guò)兩種方案解決了MySql查詢(xún)不區(qū)分大小寫(xiě)的問(wèn)題,希望對(duì)大家有所幫助,更多有mysql數(shù)據(jù)查詢(xún)問(wèn)題,請(qǐng)登錄本站學(xué)習(xí)。
相關(guān)文章
使用SQL Server分區(qū)表功能提高數(shù)據(jù)庫(kù)的讀寫(xiě)性能
一般來(lái)說(shuō)一個(gè)系統(tǒng)最先出現(xiàn)瓶頸的點(diǎn)很可能是數(shù)據(jù)庫(kù)。比如我們的生產(chǎn)系統(tǒng)并發(fā)量很高在跑一段時(shí)間后,數(shù)據(jù)庫(kù)中某些表的數(shù)據(jù)量會(huì)越來(lái)越大。海量的數(shù)據(jù)會(huì)嚴(yán)重影響數(shù)據(jù)庫(kù)的讀寫(xiě)性能2023-05-05深入淺出解析mssql在高頻,高并發(fā)訪問(wèn)時(shí)鍵查找死鎖問(wèn)題
SQL Server死鎖使我們經(jīng)常遇到的問(wèn)題,數(shù)據(jù)庫(kù)操作的死鎖是不可避免的,本文并不打算討論死鎖如何產(chǎn)生,重點(diǎn)在于解決死鎖。希望對(duì)您學(xué)習(xí)SQL Server死鎖方面能有所幫助。2014-08-08sql時(shí)間段切分實(shí)現(xiàn)每隔x分鐘出一份高速門(mén)架車(chē)流量
本文主要介紹了sql時(shí)間段切分實(shí)現(xiàn)每隔x分鐘出一份高速門(mén)架車(chē)流量,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02asp.net連接查詢(xún)SQL數(shù)據(jù)庫(kù)并把結(jié)果顯示在網(wǎng)頁(yè)上(2種方法)
使用C#連接SQL數(shù)據(jù)庫(kù),并使用SQL語(yǔ)句查詢(xún),摸索了兩天終于運(yùn)行起來(lái)了,接下來(lái)為大家分享下兩種連接方法,感興趣的朋友可以參考下哈,希望可以幫助到你2013-04-04CPU?核心數(shù)超過(guò)?Enterprise?Server/CAL?限制問(wèn)題的解決方法
最近有客戶(hù)要求安裝sql?server?2019?數(shù)據(jù)庫(kù),安裝過(guò)程中提示Enterprise?Server/CAL?CPU?核心利用率限制規(guī)則生成了警告,CPU?核心數(shù)超過(guò)?Enterprise?Server/CAL?限制,20?個(gè)物理核心,或已啟用超線程的?40?個(gè)邏輯核心,原來(lái)企業(yè)版也是有區(qū)別的2024-04-04SQL語(yǔ)句查詢(xún)是否為空 =null及null
SQL語(yǔ)句查詢(xún)是否為空 =null及null實(shí)現(xiàn)代碼。2009-06-06SQL SERVER 表與表之間 字段一對(duì)多sql語(yǔ)句寫(xiě)法
這篇文章主要介紹了SQL SERVER 表與表之間 字段一對(duì)多sql語(yǔ)句寫(xiě)法,需要的朋友可以參考下2017-01-01SQL?SERVER服務(wù)器部署IP查詢(xún)方法詳解
這篇文章主要為大家介紹了SQL?SERVER服務(wù)器部署IP查詢(xún)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01SQL?Server安裝后本地服務(wù)器連接失敗的解決方法(僅供參考)
訪問(wèn)SQLServer數(shù)據(jù)庫(kù)失敗時(shí),最常見(jiàn)的錯(cuò)誤是"連接服務(wù)器失敗,SQLServer不存在或訪問(wèn)被拒絕",或者"未能建立與(local)的鏈接,SQLServer不存在或訪問(wèn)被拒絕",這篇文章主要給大家介紹了關(guān)于SQL?Server安裝后本地服務(wù)器連接失敗的解決方法,需要的朋友可以參考下2023-11-11