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 status modify *** varchar(255) binary default null ;
mysql>
alter table t1 modify 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中的字段是不區分大小寫的,所以 aa 與 aa 被認為是一樣的。那麼有些特殊情況下,我們希望它區分大小寫呢,這時應該怎麼辦,說出來其實很簡單,如 drop table if exists tpl forbiddenword create table tpl forbiddenw...
mysql 字段區分大小寫
預設情況下,mysql中的字段是不區分大小寫的,所以 aa 與 aa 被認為是一樣的。那麼有些特殊情況下,我們希望它區分大小寫呢,這時應該怎麼辦,說出來其實很簡單,如 drop table if exists tpl forbiddenword create table tpl forbiddenw...
mysql限制大小寫 mysql對大小寫的限制問題
今天研發人員問我,mysql對大小寫有限制嗎?我想都沒想,說沒限制。過了一會兒,研發人員告訴我說linux下是有限制的。我頓時有種打自己臉的感覺。對於自己不確定的問題,一定得想清楚,查明白了再說。在windows和mac os中,lower case tables name的預設值是1.如果只是在乙...