2019独角兽企业重金招聘Python工程师标准>>>
MySQL字符型数据区分大小写
MySQL存储字符类型的值时默认是不区分大小写的。所以在select时如果不指定‘binary’关键字时,默认返回的值是忽略大小的。
1
CREATE TABLE `test_t1` (
2
`VR_WEB_ACCOUNT` varchar(100) DEFAULT NULL
3
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO TEST_T1 VALUES('MySQL'),('
mysql');
1
mysql> select * from test_t1 where vr_web_account like 'm%';
2
+----------------+
3
| VR_WEB_ACCOUNT |
4
+----------------+
5
| MySQL |
6
| mysql |
7
+----------------+
8
2 rows in set (0.08 sec)
在查询条件中使用'binary'关键字以后:
1
mysql> select * from test_t1 where binary vr_web_account like 'm%';
2
+----------------+
3
| VR_WEB_ACCOUNT |
4
+----------------+
5
| mysql |
6
+----------------+
7
1 row in set (0.00 sec)
以上不是这篇笔记的重点,本篇主要说的是如何修改column的character collation来达到区分大小写的目的。关于MySQL四层字符集控制这里就不累述了。
1
ALTER TABLE `TEST_T1` MODIFY COLUMN `VR_WEB_ACCOUNT` varchar(100) CHARACTER SET utf8 COLLATE
utf8_bin DEFAULT NULL;
1
select * from test_t1 where vr_web_account like 'm%';
2
+----------------+
3
| VR_WEB_ACCOUNT |
4
+----------------+
5
| mysql |
6
+----------------+
7
1 row in set (0.00 sec)