mysql返回的简单select查询结果错误

mysql返回的简单select查询结果错误,mysql,sql,Mysql,Sql,看到mysql对下面的查询的结果,我感到非常困惑 SELECT id, email, full_name FROM user WHERE `email` = 0 AND `password` = 0 它给了我这个结果 这怎么可能呢?当我将这些零括在引号中时,它不会给出任何结果。原因是什么 顺便说一句,返回的行在数据库中,但它的电子邮件或密码中肯定没有0 列类型是:email是VARCHAR(100),密码是CHAR(32)您的字段确实有e,m,a,等等。。。在里面?由于您正在比较string

看到mysql对下面的查询的结果,我感到非常困惑

SELECT id, email, full_name FROM user WHERE `email` = 0 AND `password` = 0
它给了我这个结果

这怎么可能呢?当我将这些零括在引号中时,它不会给出任何结果。原因是什么

顺便说一句,返回的行在数据库中,但它的电子邮件或密码中肯定没有0


列类型是:
email
VARCHAR(100)
,密码是
CHAR(32)
您的字段确实有
e
m
a
,等等。。。在里面?由于您正在比较
string=integer
,mysql将字符串转换为整数:

(int)'email' -> 0
当然

0 = 0 -> true

如果您的字段是(比如)
9email
,那么
(int)'9email'->9
0=9
将为false。同样适用于
'email'='0'
。这两个字符串不相等,因此该行永远不会匹配。

用单引号括起来。它的作用。