MYSQL queries are case-insensitive by default, for example, mysqlcreatetablet1 (
MYSQL queries are case-insensitive by default, for example: 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
MYSQL queries are case-insensitive by default, for example, 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
For this table, the results of the following two queries are the same by default:
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) |
If you want MYSQL to know whether the letters you entered are in upper or lower case, modify the table:
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) |
If YOU just want to implement it in an SQL statement: 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)
If you don't want to be so troublesome and want to make the service case consistent when it is enabled: you can modify my. ini or my. cnf [mysqld] lower_case_table_names = 1 (0: Yes; 1: No) and then restart the MYSQL service. Mysql> show variables like '% case_table % '; + rows + ------- + | Variable_name | Value | + ------------------------ + ------- + | lower_case_table_names | 1 | + rows + ------- + 1 row in set (0.00 sec) Note: WINDOWS systems do not need to be modified, the default value is 1. in LINUX, the default value is 0. Because LINUX scripts are case sensitive.
Original article address: MYSQL queries are case-insensitive by default. Thanks to the original author for sharing.