MySQL字段是否區分大小寫,這是一個比較常見的問題。實際上,答案是取決于數據庫的配置。默認情況下,MySQL是不區分字段大小寫的。
mysql>CREATE TABLE MyTable ( `id` int(11) NOT NULL AUTO_INCREMENT, `MyField` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在上面的示例中,我們使用`MyField`作為字段名,而不是常見的`myfield`或`MYFIELD`。如果我們執行以下查詢,我們會看到它確實是區分大小寫的。
mysql>SELECT MyField FROM MyTable; ERROR 1054 (42S22): Unknown column 'MyField' in 'field list'
然而,我們可以通過將配置文件中的lower_case_table_names參數設置為1或2(Windows默認為1,Linux為0)來更改MySQL的大小寫規則。
[mysqld] lower_case_table_names=1
當我們將該參數設置為1時,MySQL將強制將所有表名和字段名轉換為小寫,這樣我們就無法使用`MyField`而只能使用`myfield`。
mysql>SELECT myfield FROM MyTable; +---------+ | myfield | +---------+ | Hello | +---------+ 1 row in set (0.00 sec)
總的來說,MySQL默認情況下不區分字段的大小寫,但是可以通過更改lower_case_table_names參數來改變這種規則。