MySQL查詢不區分大小寫的問題

2021-06-27 20:23:59 字數 1104 閱讀 2606

參考:1.mysql查詢不區分大小寫的問題

2.mysql資料表中內容大小寫區分的設定

問題描述:

要在我的表user中插入一條name='hello' 的記錄,先去查詢有木有這樣的記錄,結果查詢出來一條name='hello'的記錄,於是插入name='hello' 的記錄失敗。

通過查詢資料可知,mysql預設查詢是不區分大小寫的,可以通過binary關鍵字加以解決。

解決方法有兩種:

第一種:讓mysql查詢時區分大小寫

select * from user wherebinary name= 'hello';

第二種:在建表時加以標識

create table table_name {

id varchar(32) binary;

對於現在已經建好的表,可以修改表結構:

alter table user change name name varchar(10) binary;

在mysql中,存在大小寫問題的地方還有:

1. 關鍵字不區分大小寫 select * from user; 與select * from user;是等價的。

2. 表名不區分大小寫:  預設表名不區分大小寫的,若想開啟表名區分大小寫操作如下:

可以修改my.ini或者my.cnf

[mysqld]

lower_case_table_names=1

(0:區分;1:不區分)

然後重啟mysql服務。

mysql> show variables like '%case_table%';

+------------------------+-------+

| variable_name | value |

+------------------------+-------+

| lower_case_table_names | 1 |

+------------------------+-------+

1 row in set (0.00 sec)

參考2.mysql資料表中內容大小寫區分的設定  的說法有誤,所開啟lower_case_table_names就會查詢也區分大小寫是不對的。

Django MySQL查詢不區分大小寫問題

最近發現乙個現象是測試環境的 sqlite 是可以區分大小寫的。就是說python sqlite 環境 company.objects.filter name teambition company.objects.filter name teambition 而到了線上的 mysql 就不區分大小寫...

mysql查詢不區分大小寫

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

MySQL查詢不區分大小寫

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