本篇內(nèi)容主要講解“解決MySQL查詢不區(qū)分大小寫的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“解決MySQL查詢不區(qū)分大小寫的方法”吧!
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供蘇州網(wǎng)站建設(shè)、蘇州做網(wǎng)站、蘇州網(wǎng)站設(shè)計(jì)、蘇州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、蘇州企業(yè)網(wǎng)站模板建站服務(wù),十多年蘇州做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
今天遇到一個情況, 查詢數(shù)據(jù)時(shí)查詢條件輸入不管大小寫,都能查到同樣的數(shù)據(jù)。 比如: 輸入 aaa 或者aaA ,AAA都能查詢同樣的結(jié)果,說明查詢條件是大小寫不敏感的。
因?yàn)槌绦蚴褂昧薶ibernate框架訪問mysql。 一開始以為是hibernate的問題。 最跟蹤了一下hibernate代碼沒有看到轉(zhuǎn)換大小寫的步驟,最后確認(rèn)hibernate其實(shí)只不過是將hql轉(zhuǎn)化為sql。大小寫不敏感和 hibernate沒有關(guān)系。
于是懷疑Mysql的問題。做個實(shí)驗(yàn):直接使用客戶端用sql查詢數(shù)據(jù)庫。 發(fā)現(xiàn)的確是大小不敏感 。
通過查詢資料發(fā)現(xiàn)需要設(shè)置collate(校對) 。 collate規(guī)則:
*_bin: 表示的是binary case sensitive collation,也就是說是區(qū)分大小寫的
*_cs: case sensitive collation,區(qū)分大小寫
*_ci: case insensitive collation,不區(qū)分大小寫
www.2cto.com
解決方法。
1.可以將查詢條件用binary()括起來。 比如: select * from TableA where columnA like binary('aaa');
2. 可以修改該字段的collation 為 binary
比如:
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;
問題解決。
到此,相信大家對“解決MySQL查詢不區(qū)分大小寫的方法”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!