在这种情况下,我创建了“登录”表:
+--------+--------------+---------+-----+
|ID_LOGIN| USERNAME | PASSWORD |
+--------+--------------+---------+-----+
| 1 | admin | admin |
+--------+--------------+---------------+
| 2 | MaxiKIng1991 | #MaxiKIng1991$|
+--------+--------------+---------------+
我将选择所有指定了用户名和密码的地方。但我想注意大写和小写字母。所以请看一看。首先,我选择了第一个登录名(用户名和密码)。
SELECT * FROM `logins` WHERE USERNAME = "AdMin" AND PASSWORD = "AdMin";
当我编写此查询时,它显示如下:
+--------+--------------+---------+-----+
|ID_LOGIN| USERNAME | PASSWORD |
+--------+--------------+---------+-----+
| 1 | admin | admin |
+--------+--------------+---------------+
但是我认为它不应该显示结果。我注意到sql查询检查每个列名中有多少个字符串。当我1个字母过多或不足时,则什么也不显示。
在第二种查询情况下:
SELECT * FROM `logins` WHERE USERNAME = "Maxiking1991" AND PASSWORD = "#maxiking1991$";
然后显示以下结果:
+--------+--------------+---------+-----+
|ID_LOGIN| USERNAME | PASSWORD |
+--------+--------------+---------+-----+
| 2 |MaxiKIng1991 |#MaxiKIng1991$ |
+--------+--------------+---------------+
但是它也不应该表明这一点。
在那个mysql查询的值中,是否可以注意大小写字母?有任何想法吗?我很难找到任何解决方案。感谢任何帮助和建议。
答案 0 :(得分:1)
像这样使用区分大小写的查询
select * from logins where BINARY USERNAME='admin';
如果您使用的是“ Admin”而不是“ admin”。它将不匹配,并且会产生空集。