今日在做用户的登陆的时候,偶然发现了用户名没有进行区分大小写,一开始我以为是程序中使用了lower或者upper这种改变字符串大小写的函数,然后把程序阅读了一遍,并没有发现相关的函数,最后把sql语句拿去执行一下,发现用大写的当作条件去查询,结果条件为小写的也被查询了出来,如图所示:

mysql 存储的值不区分大小写

查询了资料后发现两种解决方式:

1.将字段的字符集设置成utf8_bin

命令参考:ALTER TABLE ts_user MODIFY COLUMN  ACCOUNT VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;

2.查询语句中在需要区分大小写的字段前面加上binary

查询语句参考:select * from ts_user where binary  ACCOUNT='ADMIN'

相关文章:

  • 2021-05-19
  • 2021-11-04
  • 2021-10-15
  • 2021-12-03
  • 2022-12-23
  • 2022-12-23
  • 2021-12-17
猜你喜欢
  • 2021-09-07
  • 2022-12-23
  • 2021-12-23
  • 2022-02-08
  • 2021-09-08
  • 2021-12-23
  • 2021-12-23
相关资源
相似解决方案