mysql为简单的选择查询返回了错误的结果

时间:2014-09-12 20:05:25

标签: mysql sql

我很困惑地看到我从mysql获取以下查询的结果。

SELECT id, email, full_name FROM user WHERE `email` = 0 AND `password` = 0

它给了我这个结果

enter image description here

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

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

列类型为:emailVARCHAR(100),密码为CHAR(32)

1 个答案:

答案 0 :(得分:1)

您的字段中确实包含ema等等吗?由于您要比较string = integer,mysql会将字符串转换为整数:

(int)'email' -> 0

当然

0 = 0 -> true

如果您的字段是(例如)9email,则(int)'9email' -> 90 = 9将为false。 'email' = '0'也是如此。这两个字符串不相等,所以行永远不会匹配。