首页 > 数据库技术 > 详细

mysql 大小写踩坑

时间:2021-06-18 09:16:10      阅读:28      评论:0      收藏:0      [点我收藏+]

mysql创建表时,对于varchar等类型字段如果不指明binary的话查询是不区分大小写的,
例:

#建表语句:
  CREATE TABLE `users` (
  `username` varchar(50) NOT NULL,
  `password` varchar(500) NOT NULL,
  `enabled` tinyint(1) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
#查询语句的返回结果相同
select * from `users` where username = ‘A‘; 
select * from `users` where username = ‘a‘; 

踩坑场景:

  INSERT INTO users(username,`password`,enabled) VALUES(‘A‘,‘A‘,1);
  INSERT INTO users(username,`password`,enabled) VALUES(‘a‘,‘a‘,1);
  UPDATE users SET `password` = "b" WHERE username="a";
  #A a都被更新

解决办法:

#1 字段声明binary
  CREATE TABLE `users` (
  `username` varchar(50) binary NOT NULL,
  `password` varchar(500) NOT NULL,
  `enabled` tinyint(1) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
#2 查询声明binary
select * from `users` where binary username = ‘a‘;

mysql 大小写踩坑

原文:https://www.cnblogs.com/qiu00/p/14897734.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!