解決MySQL查詢不區分大小寫

2021-12-30 08:48:05 字數 808 閱讀 9755

今天遇到乙個情況, 查詢資料時查詢條件輸入不管大小寫,都能查到同樣的資料。 比如: 輸入 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查詢不區分大小寫

今天遇到乙個情況,查詢資料時查詢條件輸入不管大小寫,都能查到同樣的資料。比如 輸入 aaa 或者aaa aaa都能查詢同樣的結果,說明查詢條件是大小寫不敏感的。因為程式使用了hibernate框架訪問mysql 資料庫。一開始以為是hibernate的問題。最跟蹤了一下hibernate 沒有看到轉...

解決MySQl查詢不區分大小寫

最近,在用ssh框架完成乙個實踐專案時,碰到了乙個莫名其妙的bug困擾了我好久,最後終於解決,記錄如下。問題 同學在測試系統的時候突然發現,資料庫儲存的賬戶本來應該是admin,結果該同學用admin賬戶居然登入成功了 exm?這樣也行?好吧,我還是查詢這個bug發生的原因吧。然後就是各種排查程式的...

mysql查詢不區分大小寫

摘自 當我們輸入不管大小寫都能查詢到資料,例如 輸入 aaa 或者aaa aaa都能查詢同樣的結果,說明查詢條件對大小寫不敏感。解決方案一 於是懷疑mysql的問題。做個實驗 直接使用客戶端用sql查詢資料庫。發現的確是大小不敏感 通過查詢資料發現需要設定collate 校對 collate規則 b...