默认mysql where判断是不区分大小写的,平时好像也没有遇见过这个问题,但是这里还是给出简单的解决方案吧。
    参考:https://blog.csdn.net/Veir_123/article/details/73730751

    下面两句话效果是一样的。

    1. select * from user where username = 'admin' and password = 'admin';
    2. select * from user where username = 'Admin' and password = 'admin';

    解决:

    方案一:
    修改字符检索策略:utf8_general_ci,表示不区分大小写,utf8_bin表示二进制比较,区分大小写 。

    1. -- 创建表:
    2. CREATE TABLE testt(
    3. id INT PRIMARY KEY,
    4. name VARCHAR(32) NOT NULL
    5. ) ENGINE = INNODB COLLATE =utf8_bin;
    6. -- 修改表结构的Collation属性
    7. ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;

    方案二:
    直接修改sql语句

    1. -- 在每一个条件前加上binary关键字
    2. select * from user where binary username = 'admin' and binary password = 'admin';
    3. -- 将参数以binary('')包围
    4. select * from user where username like binary('admin') and password like binary('admin');