The content in the MySQL DATA table is case-sensitive.
By default, MYSQL queries are case-insensitive, for example :?
1234567 |
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 :?
12345678910111213141516171819 |
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 :?
1234567891011121314151617181920 |
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 :?
123456789101112131415 |
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: Can you modify my. ini or my. cnf?
123 |
[mysqld] lower_case_table_names=1 (0: Yes; 1: No) |
Then restart the MYSQL service. ?
1234567 |
mysql> show variables like '%case_table%' ; + ------------------------+-------+ | Variable_name | Value | + ------------------------+-------+ | lower_case_table_names | 1 | + ------------------------+-------+ 1 row in set (0.00 sec) |