mysql字符串转换返回0

amd*_*amd 6 mysql database

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