MySQL查詢不區分大小寫

2021-10-02 00:08:40 字數 1275 閱讀 8792

springboot+mybatis plus獲取資料時,發現mysql竟然沒有區分大小寫都能識別出來,具體的sql如下:

select

*from

user

where username =

#

mysql預設的字元檢索策略:utf8_general_ci,表示不區分大小寫;utf8_general_cs表示區分大小寫,utf8_bin表示二進位制比較,同樣也區分大小寫 。(注意:在mysql5.6.10版本中,不支援utf8_genral_cs

1、建立表時,直接設定表的collate屬性為utf8_general_cs或者utf8_bin

create

table

user

(id int

primary

key,

username varchar

(255

)not

null

)engine

=innodb

collate

=utf8_bin;

2、如果已經建立表,則直接修改欄位的collation屬性為utf8_general_cs或者utf8_bin。

alter

table

user

modify

column username varchar

(255

)binary

character

set utf8 collate utf8_bin default

null

;

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

-- 在每乙個條件前加上binary關鍵字

select

*from

user

where

binary username =

#;-- 將引數以binary('')包圍

select

*from

user

where username like

binary

('#'

);

mysql查詢不區分大小寫

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

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

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

MySQL查詢不區分大小寫問題

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