1204_Mysql字段内容英文不区分大小写的问题

Mysql字段内容英文不区分大小写的问题

准备数据

CREATE TABLE `students` (
  `student_id` int(11) NOT NULL,
  `student_name` varchar(100) NOT NULL,
  `grade_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`student_id`),
  KEY `grade_id` (`grade_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生表';

INSERT INTO students(student_id, student_name, grade_id)VALUES(1009, 'zhang', 1);
INSERT INTO students(student_id, student_name, grade_id)VALUES(1010, 'ZHANG', 1);

出现的问题

  • 查询姓名等于"zhang"的学生
select * from students s where student_name='zhang';
  • 查询出来的结果为两条数据

image

处理方法

方法一:修改字段的排序规则:utf8mb4_bin

image

  • 执行的语句:
ALTER TABLE students COLLATE=utf8mb4_bin;
select * from students s where student_name='zhang';
  • 结果:

image

方法二:查询语句时对指定字段的排序规则:utf8mb4_bin
  • 执行的语句:
select * from students s where student_name='zhang'  COLLATE utf8mb4_bin;
  • 结果:

image

方法三:查询语句使用关键字:binary
  • 执行的语句:
select * from students s where binary student_name='zhang';
  • 结果:

image

posted @ 2025-09-19 15:43  庞去广  阅读(7)  评论(0)    收藏  举报