Mysql欄位大小寫

2021-06-03 00:11:27 字數 2476 閱讀 3157

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.如果只是在乙...