mysql查詢不區分大小寫

2021-09-25 03:55:08 字數 1972 閱讀 5626

摘自:

當我們輸入不管大小寫都能查詢到資料,例如:輸入 aaa 或者aaa ,aaa都能查詢同樣的結果,說明查詢條件對大小寫不敏感。

解決方案一:

於是懷疑mysql的問題。做個實驗:直接使用客戶端用sql查詢資料庫。 發現的確是大小不敏感 。

通過查詢資料發現需要設定collate(校對) 。collate規則

*_bin: 表示的是binary case sensitive collation,也就是說是區分大小寫的

*_cs: case sensitive collation,區分大小寫

*_ci: case insensitive collation,不區分大小寫

解決方法。

1.可以將查詢條件用binary()括起來。  比如:  

select*fromtableawherebinarycolumna ='aaa';

2. 可以修改該字段的collation 為 binary

比如:altertabletablenamemodifycolumncolumnnamevarchar(50)binarycharactersetutf8collateutf8_bindefaultnull;

解決方案二:

mysql查詢預設是不區分大小寫的 如:

select*fromsome_tablewherestr=『abc';

select * from some_table where str='abc';

得到的結果是一樣的,如果我們需要進行區分的話可以按照如下方法來做: 

第一種方法:

要讓mysql查詢區分大小寫,可以:

select*fromsome_tablewherebinarystr='abc'

select*fromsome_tablewherebinarystr='abc'

第二方法:

在建表時時候加以標識

create table some_table(

strchar(20) binary

)

原理:

對於char、varchar和text型別,binary屬性可以為列分配該列字符集的 校對規則。binary屬性是指定列字符集的二元 校對規則的簡寫。排序和比較基於數值字元值。因此也就自然區分了大小寫。

MySQL查詢不區分大小寫

springboot mybatis plus獲取資料時,發現mysql竟然沒有區分大小寫都能識別出來,具體的sql如下 select from user where username mysql預設的字元檢索策略 utf8 general ci,表示不區分大小寫 utf8 general cs表示...

mysql查詢大小寫 mysql查詢不區分大小寫

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

MySQL查詢不區分大小寫問題

問題描述 找出使用者名稱id為 aamkadexm2m5njq2lwuzyzc fkmc1h 的使用者的資料 select from usertable where id aamkadexm2m5njq2lwuzyzc fkmc1h 結果出現兩條記錄。這就奇怪了,id已經設定為主鍵,怎麼會重複呢?難...