mysql在預設的情況下查詢是不區分大小寫的,例如:
mysql> create table t1(
-> name 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 name = 'you';
+------+
| name |
+------+
| you |
| you |
| you |
+------+
3 rows in set (0.00 sec)
mysql> select * from t1 where name = 'you';
+------+
| name |
+------+
| you |
| you |
| you |
+------+
3 rows in set (0.00 sec)
如果想讓mysql知道你輸入的字母是大寫還是小寫的,修改表:
mysql> alter table t1 change name name varchar(10) binary;
query ok, 3 rows affected (0.20 sec)
records: 3 duplicates: 0 warnings: 0
mysql> select * from t1 where name = 'you';
+------+
| name |
+------+
| you |
+------+
1 row in set (0.00 sec)
mysql> select * from t1 where name = 'you';
+------+
| name |
+------+
| you |
+------+
1 row in set (0.00 sec)
如果你只是想在sql語句中實現的話:
mysql> select * from t1 where name = binary 'you';
+------+
| name |
+------+
| you |
+------+
1 row in set (0.02 sec)
mysql> select * from t1 where name = binary 'you';
+------+
| name |
+------+
| 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大小寫的約定
mysql在預設的情況下查詢是不區分大小寫的,例如 mysql create table t1 name varchar 10 query ok,0 rows affected 0.09 sec mysql insert into t1 values you you you query ok,3 r...
mysql限制大小寫 mysql對大小寫的限制問題
今天研發人員問我,mysql對大小寫有限制嗎?我想都沒想,說沒限制。過了一會兒,研發人員告訴我說linux下是有限制的。我頓時有種打自己臉的感覺。對於自己不確定的問題,一定得想清楚,查明白了再說。在windows和mac os中,lower case tables name的預設值是1.如果只是在乙...
mysql 區分大小寫 大小寫敏感 配置
linux下mysql預設區分大小寫 windows下mysql預設不區分大小寫 檢視是否區分大小寫 lower case table names引數詳解 lower case table names 0 其中 0 區分大小寫,1 不區分大小寫 mysql在linux下資料庫名 表名 列名 別名大小...