2021年2月4日星期四

知识分享:SQL语句中where条件后面的1=1是


 

这段代码应该是由程序中生成的,where条件中 1=1 之后的条件是通过 if 块动态变化的。例如:

  String sql="select * from table_name  where 1=1";

if( conditon 1) {

  sql=sql+"  and  var2=value2";

}

if(conditon 2) {

  sql=sql+"  and var3=value3";

}

where 1=1 是为了避免where 关键字后面的第一个词直接就是 "and"而导致语法错误。

动态SQL中连接AND条件

where 1=1 是为了避免where 关键字后面的第一个词直接就是 "and"而导致语法错误。

where后面总要有语句,加上了1=1后就可以保证语法不会出错!

select * from table where 1=1

因为table中根本就没有名称为1的字段,所以该SQL等效于select * from table,

这个SQL语句很明显是全表扫描,需要大量的IO操作,数据量越大越慢,

建议查询时增加必输项,即where 1=1后面追加一些常用的必选条件,并且将这些必选条件建立适当的索引,效率会大大提高

拷贝表

create table  table_name  as  select  *  from  Source_table  where  1=1;

复制表结构

create table  table_name  as  select  *  from  Source_table  where  1 <> 1;

 


 

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~

UP在主页上传了一些学习C/C++编程的视频教程,有兴趣或者正在学习的小伙伴一定要去看一看哦!会对你有帮助的~

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

免费学习书籍:


 

免费学习资料:


 









原文转载:http://www.shaoqun.com/a/527606.html

跨境电商:https://www.ikjzd.com/

1号团:https://www.ikjzd.com/w/2263

蜜芽宝贝官网:https://www.ikjzd.com/w/1320


这段代码应该是由程序中生成的,where条件中1=1之后的条件是通过if块动态变化的。例如:Stringsql="select*fromtable_namewhere1=1";if(conditon1){sql=sql+"andvar2=value2";}if(conditon2){sql=sql+"andvar3=value3";}wh
邮乐网购物商城:邮乐网购物商城
贝贝官网:贝贝官网
口述:女儿出轨后才理解父亲为何背叛(2/2):口述:女儿出轨后才理解父亲为何背叛(2/2)
实操:如何建立Facebook商务主页?:实操:如何建立Facebook商务主页?
国务院新闻办公室发布《关于中美经贸摩擦的事实与中方立场》白皮书!:国务院新闻办公室发布《关于中美经贸摩擦的事实与中方立场》白皮书!

没有评论:

发表评论