select 'aaa' =0如果我有一个像这样的表,为什么返回1(TRUE)
userid | pass
user1 | pas1
Run Code Online (Sandbox Code Playgroud)
如果我查询:
select from table where userid = 0 and pass =0
Run Code Online (Sandbox Code Playgroud)
它给了我所有的行?
Cor*_*bin 10
MySQL看到'aaa'= 0并认为自己:
"我可以将aaa转换为整数,或者将0转换为字符串."
猜猜它与哪一个相关?
基本上发生的事情是'aaa'正在转换为整数,因为它不是有效整数,所以它会转换为0.
0 = 0当然是真的(或者是真== 1).
我怀疑你的用户标识列发生了同样的情况,虽然不知道它的值/数据类型,但很难说.
http://dev.mysql.com/doc/refman/5.0/en/type-conversion.html