處理mysql不區分字母大小寫的問題

2021-06-01 18:50:34 字數 2290 閱讀 9622

mysql預設是對字母的大小寫不區分的

mysql> create table t1(

-> username varchar(10));

query ok, 0 rows affected (0.09 sec)

mysql> insert into t1 values('you'),('you'),('you');

query ok, 3 rows affected (0.05 sec)

records: 3  duplicates: 0  warnings: 0

對這個表,預設情況下,下面兩個查詢的結果是一樣的:

mysql> select * from t1 where username = 'you';

+------+

| username |

+------+

| you  |

| you  |

| you  |

+------+

3 rows in set (0.00 sec)

mysql> select * from t1 where username = 'you';

+------+

| username |

+------+

| you  |

| you  |

| you  |

+------+

3 rows in set (0.00 sec)

如果想讓mysql知道你輸入的字母是大寫還是小寫的,修改表:

mysql> alter table t1 change username username varchar(10) binary;

query ok, 3 rows affected (0.20 sec)

records: 3  duplicates: 0  warnings: 0

mysql> select * from t1 where username = 'you';

+------+

| username |

+------+

| you  |

+------+

1 row in set (0.00 sec)

mysql> select * from t1 where username = 'you';

+------+

| username |

+------+

| you  |

+------+

1 row in set (0.00 sec)

如果你只是想在sql語句中實現的話:

mysql> select * from t1 where username = binary 'you';

+------+

| username |

+------+

| you  |

+------+

1 row in set (0.02 sec)

mysql> select * from t1 where username = binary 'you';

+------+

| username |

+------+

| you  |

+------+

1 row in set (0.00 sec)

如果不想這麼麻煩而想服務一開啟就讓大小寫一致的話:

可以修改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)

注:windows系統不用修改,系統預設就是1

linux 系統預設是0。因為linux下的指令碼都是區分大小寫的。

mysql 不區分大小寫的處理辦法

1 今天發現,mysql5.5查詢預設是不區分大小寫的 select category ncrna species cell immune events count 1 from functiondata where category lncrna and ncrna linc01228 group...

mysql 不區分大小寫問題

1.mysql 的預設規定 1.1 mysql在linux下資料庫名 表名 列名 別名大小寫規則是這樣的 1 資料庫名與表名是嚴格區分大小寫的 2 表的別名是嚴格區分大小寫的 3 列名與列的別名在所有的情況下均是忽略大小寫的 4 變數名也是嚴格區分大小寫的 1.2 mysql在windows下都不區...

mysql查詢不區分大小寫

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