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);
出现的问题
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]()