如何正确选择用户名和密码注意大小写字母-MySQL

时间:2019-04-25 05:55:49

标签: mysql select where uppercase lowercase

在这种情况下,我创建了“登录”表:

+--------+--------------+---------+-----+
|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查询的值中,是否可以注意大小写字母?有任何想法吗?我很难找到任何解决方案。感谢任何帮助和建议。

1 个答案:

答案 0 :(得分:1)

像这样使用区分大小写的查询

select * from logins where BINARY USERNAME='admin';

如果您使用的是“ Admin”而不是“ admin”。它将不匹配,并且会产生空集。