您好,登錄后才能下訂單哦!
本篇內容主要講解“解決MySQL查詢不區分大小寫的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“解決MySQL查詢不區分大小寫的方法”吧!
今天遇到一個情況, 查詢數據時查詢條件輸入不管大小寫,都能查到同樣的數據。 比如: 輸入 aaa 或者aaA ,AAA都能查詢同樣的結果,說明查詢條件是大小寫不敏感的。
因為程序使用了hibernate框架訪問mysql。 一開始以為是hibernate的問題。 最跟蹤了一下hibernate代碼沒有看到轉換大小寫的步驟,最后確認hibernate其實只不過是將hql轉化為sql。大小寫不敏感和 hibernate沒有關系。
于是懷疑Mysql的問題。做個實驗:直接使用客戶端用sql查詢數據庫。 發現的確是大小不敏感 。
通過查詢資料發現需要設置collate(校對) 。 collate規則:
*_bin: 表示的是binary case sensitive collation,也就是說是區分大小寫的
*_cs: case sensitive collation,區分大小寫
*_ci: case insensitive collation,不區分大小寫
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查詢不區分大小寫的方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。