mysql查询不区分大小写解决方案

2025-10-08 08:25:17

1、在我们日常建库建表过程中,字符编码选择“utf8”,排序规则“utf8_general_ci”。如下图所示:

mysql查询不区分大小写解决方案

2、student表结构如下:

CREATE TABLE `tb_student` (

  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',

  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '姓名',

  `number` varchar(20) NOT NULL DEFAULT '' COMMENT '学号',

  `sex` varchar(1) NOT NULL DEFAULT '' COMMENT '性别',

  `age` int(3) NOT NULL DEFAULT '0' COMMENT '年龄',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

mysql查询不区分大小写解决方案

3、student表数据如下如所示:

mysql查询不区分大小写解决方案

4、从表中可得知学号1003有两个,分别是“P1003”和“p1003”。

mysql查询不区分大小写解决方案

5、当我们查询number为“P1003”时,正常情况来讲是希望查询姓名为“王五”的结果;但是查询结果却出乎意料如下图所示:

mysql查询不区分大小写解决方案

6、当我们查询number为“p1003”时,正常情况来讲是希望查询姓名为“如花”的结果;但是查询结果却出乎意料如下图所示:

mysql查询不区分大小写解决方案

7、出现如此该如何解决呢?在Navicat for MySQL中我们选中“tb_student”表,点击鼠标右键选择

mysql查询不区分大小写解决方案

8、在弹出的表结构中,选中“number”行,将该列的排序规则修改为“utf8_bin”后并保存。如下图所示:

mysql查询不区分大小写解决方案

mysql查询不区分大小写解决方案

9、修改后的表结构:

CREATE TABLE `tb_student` (

  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',

  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '姓名',

  `number` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '学号',

  `sex` varchar(1) NOT NULL DEFAULT '' COMMENT '性别',

  `age` int(3) NOT NULL DEFAULT '0' COMMENT '年龄',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

mysql查询不区分大小写解决方案

10、再次查询学号为“p1003”的结果,“SELECT * FROM `tb_student` where number = 'p1003';”如下图所示:

mysql查询不区分大小写解决方案

11、到此,mysql查询不区分大小写问题便解决了;希望能帮助到你。^V^

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢