你是否也有遇到过使用mysql查询张虢咆噘时遇到不区分大小写懵圈情况?反正小编是有遇到过,如果你也遇到过别慌;小编带你一起解决它。
工具/原料
mysql5.6.44
student表一张
方法/步骤
1、在我们日常建库建表过程中,字符编码选择“utf8”,排序规则“utf8_general_ci”。如下图所示:
2、student表结构如下:CREATE哌囿亡噱TABLE`tb_student`(`id`int(10)NOTNULLAUTO_INCREMENTCOMMENT惺绅寨瞀'主键',`name`varchar(20)NOTNULLDEFAULT''COMMENT'姓名',`number`varchar(20)NOTNULLDEFAULT''COMMENT'学号',`sex`varchar(1)NOTNULLDEFAULT''COMMENT'性别',`age`int(3)NOTNULLDEFAULT'0'COMMENT'年龄',PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=6DEFAULTCHARSET=utf8;
3、student表数据如下如所示:
4、从表中可得知学号1003有两个,分别是“P1003”和“p1003”。
5、当我们查询number为“P1003”时,正常情况来讲是希望查询姓名为“王五”的结果;但是查询结果却出乎意料如下图所示:
6、当我们查询number为“p1003”时,正常情况来讲是希望查询姓名为“如花”的结果;但是查询结果却出乎意料如下图所示:
7、出现如此该如何解决呢?在NavicatforMySQL中我们选中“tb_student”表,点击鼠标右键选择
8、在弹出的表结构中,选中“number”行,将该列的排序规则修改为“utf8_bin”后并保存。如下图所示:
9、修改后的表结构:CREATE哌囿亡噱TABLE`tb_student`(`id`int(10)NOTNULLAUTO_INCREMENTCOMMENT'稆糨孝汶;主键',`name`varchar(20)NOTNULLDEFAULT''COMMENT'姓名',`number`varchar(20)CHARACTERSETutf8COLLATEutf8_binNOTNULLDEFAULT''COMMENT'学号',`sex`varchar(1)NOTNULLDEFAULT''COMMENT'性别',`age`int(3)NOTNULLDEFAULT'0'COMMENT'年龄',PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=6DEFAULTCHARSET=utf8;
10、再次查询学号为“p1003”的结果,“SELECT*FROM`tb_student`嘛术铹砾wherenumber='p1003';”如下图所示:
11、到此,mysql查询不区分大小写问题便解决了;希望能帮助到你。^V^