select * form user where username = ''/1;
一开始一看以为还是错误的语法....
结果出来一堆结果..
原来条件是 ''除以1
''除以1 结果是什么呢?
原来在mysql里面 会做隐式转换(优先级转换)
字符串转换结果:
'abc' 转换为 0
'25a'转换为 25
'123' 转换为 123
''也是字符串 所以转换为 0
"/1 同等于 0/1 所以0除以1 等于 0
同理: username字段里面只要是包含字符串的都是 0
那么 username = ''/1 的结果是:只要是username包含字符串的都会显示在结果里面.
思考 select * from user where username = ''/0; 结果查询为空
这是为什么呐
在数学中以及java中,被除数不能为零,mysql也是如此
所以 ''/0是个错误的语法,mysql返回NULL来解决这个问题,所以查询结果为空