mysql中字符大小写问题
参考网址:
链接1
https://blog.csdn.net/wangtaoking1/article/details/107954837?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163163483216780265432711%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163163483216780265432711&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-107954837.first_rank_v2_pc_rank_v29&utm_term=mysql+COLLATE+%E5%85%B3%E9%94%AE%E5%AD%97&spm=1018.2226.3001.4187
链接2
https://blog.csdn.net/network_dream/article/details/89316870?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163160351116780274130181%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163160351116780274130181&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-2-89316870.first_rank_v2_pc_rank_v29&utm_term=mysql%E4%B8%8D%E5%8C%BA%E5%88%86%E5%A4%A7%E5%B0%8F%E5%86%99%E5%85%B3%E9%94%AE%E5%AD%97&spm=1018.2226.3001.4187
提问
mysql字符类型支持大小写吗
问题在线
建表语句
-- 不区分大小写
CREATE TABLE `demo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4
-- 区分大小写
CREATE TABLE `demo1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4
-- 插入测试数据
insert into demo values(null,"Hello");
insert into demo1 values(null,"Hello");
关键
CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL `code` varchar(32) CHARACTER SET utf8 COLLATE
-- COLLATE属性用于指定列的排序和比较方式
测试
查出数据
mysql> select * from demo;
+----+-------+
| id | name |
+----+-------+
| 1 | Hello |
+----+-------+
1 row in set (0.00 sec)
mysql> select * from demo where name = 'hello';
+----+-------+
| id | name |
+----+-------+
| 1 | Hello |
+----+-------+
1 row in set (0.00 sec)
未查出数据
mysql> select * from demo1;
+----+-------+
| id | name |
+----+-------+
| 1 | Hello |
+----+-------+
1 row in set (0.00 sec)
mysql> select * from demo1 where name = 'hello';
Empty set (0.00 sec)
结论
mysql默认建表不指定规则,默认是不区分大小写的,如果字符类型指定COLLATE需要区分大小写,那么就支持大小写
有问题欢迎指出
个人csdn博客网址:https://blog.csdn.net/shaoming314
个人博客网址:www.shaoming.club
勇敢牛牛,不怕困难