拉钩教育-大前端高薪训练营 NEXT计划|定制未来|无密

192 阅读1分钟

download:拉钩教育-大前端高薪训练营 NEXT计划|定制未来|完结-猿人部落 (97yrbl.com)

where 1=1的作用

如果要问在SQL语句的where条件中多加1=1目的是什么,很简单:使得where条件语句永远为真。本质上就是虽然加了where条件,但实际上永远为真,也就相当于没有加任何约束条件。

使用该语句的场景主要是:动态构建SQL语句

String sql  =  "select * from t_user  where 1=1 "; 
if(!b.equals("")){
  sql += "and  b='"+b+"'";
}   
复制代码

在上述语句拼写时,使用where 1=1,当b不等于空时,可以直接拼接“and”语句,而不会导致语法错误。如果没有where 1=1,原来的SQL语句就变成(假设b传入了"abc"):

"select * from t_user  where and  b= 'abc' "; 
复制代码

很明显,上述SQL语句会有语法错误。所以,之所以添加1=1,就是为了方便SQL拼接。

从另外一个角度来讲,不仅仅1=1可以这样使用,像:1<>22>1'a'='a'等表达式,只要结果为true,都可以如此使用。


作者:程序新视界
链接:juejin.cn/post/706991… 来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。