select * from users where [Name]='abc' and Password='ddd' or 1=1
和select * from users where [Name]='abc' or 1=1 and Password='ddd'
两条语句同样的结果,不明白第2个语句的and两边的条件 1 and 0 为什么还能查出来呢?Password是随便输的一个密码,不是正确的
急,请解答谢谢
和select * from users where [Name]='abc' or 1=1 and Password='ddd'
两条语句同样的结果,不明白第2个语句的and两边的条件 1 and 0 为什么还能查出来呢?Password是随便输的一个密码,不是正确的
急,请解答谢谢
select * from users where [Name]='abc' and Password='ddd' or 1=1 这一句作用等同于select * from usersselect * from users where [Name]='abc' or 1=1 and Password='ddd' 这句等同于select * from users where Password='ddd'
and两边的不全为真,为什么也能执行正确呢?
这边的 1 or 1 已经为真了,而后面的and呢? and两边不全为真啊 1 and 0
这边为什么不起作用了?
实在惭愧,and优先级高于or执行完之后是 0
而 1 or 0 仍然为 1 所以等同第一条,谢谢大家
1. ([Name]='abc' and Password='ddd') or 1=1
2. [Name]='abc' or (1=1 and Password='ddd')
简化后就是:
1. true
2. [Name]='abc' or Password='ddd'