SQL语句的where

2025-01-03 00:42:20
推荐回答(5个)
回答1:

where id = 1 AND (sno = xxx OR 1 = 1)
用这试一下,sql注入的做法.

可是我要的是当sno没值传进来的时候就永远成立,有值传进来就要判断的
这个恐怕做不到。
只能做到说是给sno一个默认值(一个sno永远不可能的值),然后没有参数进来的时候,程序自然去判断1=1从而忽略掉sno = xxxx, 不去判断后面的sno =xxx,
如果有参数进来的时候,程序首先判断sno = 传递来得值,而忽略后面的1=1。

因此必须确保or前后的语句的次序以实现这个
select * from table where id=1 and (sno = xx OR 1 = 1)

sql注入个人能力范围内只能到这个程度了。

回答2:

可以改造下:
select * from table where id=1 and (sno=参数 or 1=1)

这样 (sno=参数 or 1=1) 就永远是满足的条件。

回答3:

isnull(sno,'') like '%%'

回答4:

select * from table where id=1 or sno=2
select * from table where id=1 or sno=2 or(id=3 and sno=3)

回答5:

不明白你说的是什么意思