为什么SQL语句加 1=1

为什么SQL语句加1=1... 为什么SQL语句加 1=1 展开
 我来答
jackyc23
2010-08-09 · TA获得超过523个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:395万
展开全部
这个就是为了方便sql条件的拼接,在“where”和“and”的地方方便处理(这里以“and”关键字举例)

假如有如下5列条件可以任意组合:
a='a'; b='b'; c='c'; d='d'; e='e'

第一种方案:
如果初始sql为: select * from t1

我们在生成最终的sql时就需要分情况判断
1。一个条件也不带,sql保持不变
2。如果至少有一个条件,我们就需要在sql后面加一个“where”来连接条件
3。如果至少有二个条件,“where”后面的第一个条件前面是不需要“and”的,因为5列条件可以任意组合,我们就需要判断哪一列会是紧跟在“where”后面的,这时候又需要代码来判断

第二种方案:
如果初始sql是这样:select * from t1 where 1=1

现在对于第一种方案里面的任何一种情况,我们都只需要直接在sql后面加上“and + 对应的条件”就行了,不用另外写代码判断
比如:
sql = sql + ' and ' + a='a' ---> select * from t1 where 1=1 and a='a'
sql = sql + ' and ' + b='b' ---> select * from t1 where 1=1 and b='b'
sql = sql + ' and ' + c='c' + " and " + d='d' ---> select * from t1 where 1=1 and c='c' and d='d'

特别是当条件很多,程序中又能循环动态的添加条件的时候很方便
下面用伪代码举例:
sql = select * from t1 where 1=1;
for (int i = 0; i < column.Count; i++)
{
sql = sql + " and " + column[i].Name + "='" + column[i].Value + "'";
}
最终生成的sql就类似如下的:
select * from t1 where 1=1 and a='a' and b='b' and c='c' and d='d' and e='e'
胡勇孝
推荐于2017-09-25 · TA获得超过261个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:137万
展开全部
是为了链接下面的查询条件条件,也或者是替换没有查询条件的语句。
比如:要把检索条件作为一个参数传递给SQL,那么,当这个检索语句不存在的话就可以给它赋值为1=1.这样就避免了SQL出错,也就可以把加条件的SQL和不加条件的SQL合二为一。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胡马北驰行四j
2018-10-19
知道答主
回答量:5
采纳率:0%
帮助的人:1616
展开全部
比如:select * from student where 1=1 and c= 2 and b= 3
简而言之,加上where 1=1的目的就是在查询条件不确定的情况下(不确定c=2,b=3是否可以查到值),如果where后面的条件满足(c=2,b=3可以查到值)则显示条件查出来的值,如果查询的条件不满足(c=2,b=3查不到值),则就用到了1=1,即为select * from student where 1=1,查的是student表中的所有数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jinwb
2010-08-09 · TA获得超过148个赞
知道小有建树答主
回答量:462
采纳率:0%
帮助的人:253万
展开全部
一般情况下 加所谓的1=1 是用于SQL字符串拼接使用的,1=1表达式永远是真,后跟凭借字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
僪凝点l
2010-08-09 · 超过11用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:45.3万
展开全部
这是sql注入 这样写就是为了达到什么号都可以登陆的效果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式