where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句。

1. 不用where 1=1 在多条件查询中的困扰

举个例子,如果您做查询页面,并且,可查询的选项有多个,同时,还让用户自行选择并输入查询关键词,那么,按平时的查询语句的动态构造,代码大体如下:

 string MySqlStr=”select * from table where”;  if(Age.Text.Lenght>0)  {    MySqlStr=MySqlStr+“Age=“+“'Age.Text'“;  }  if(Address.Text.Lenght>0)  {    MySqlStr=MySqlStr+“and Address=“+“'Address.Text'“;  }

①种假设

如果上述的两个IF判断语句,均为True,即用户都输入了查询词,那么,最终的MySqlStr动态构造语句变为:

MySqlStr=”select * from table where Age='18'  and Address='极客教程网,值得你拥有'”

可以看得出来,这是一条完整的正确的SQL查询语句,能够正确的被执行,并根据数据库是否存在记录,返回数据。

②种假设

如果上述的两个IF判断语句不成立,那么,最终的MySqlStr动态构造语句变为:

MySqlStr=”select * from table where“

现在,我们来看一下这条语句,由于where关键词后面需要使用条件,但是这条语句根本就不存在条件,所以,该语句就是一条错误的语句,肯定不能被执行,不仅报错,同时还不会查询到任何数据。

上述的两种假设,代表了现实的应用,说明,语句的构造存在问题,不足以应付灵活多变的查询条件。

2. 使用 where 1=1 的好处

假如我们将上述的语句改为:

string MySqlStr=”select * from table where  1=1 ”;  if(Age.Text.Lenght>0)  {    MySqlStr=MySqlStr+“and Age=“+“'Age.Text'“;  }  if(Address.Text.Lenght>0)  {    MySqlStr=MySqlStr+“and Address=“+“'Address.Text'“;  }

现在,也存在两种假设

①种假设

如果两个IF都成立,那么,语句变为:

MySqlStr=”select * from table where  1=1 and Age='18'  and Address='极客教程网,值得你拥有'”

很明显,该语句是一条正确的语句,能够正确执行,如果数据库有记录,肯定会被查询到。

②种假设

如果两个IF都不成立,那么,语句变为:

MySqlStr=”select * from table where 1=1”
MySqlStr=”select * from table where 1=1”

现在,我们来看这条语句,由于where 1=1 是为True的语句,因此,该条语句语法正确,能够被正确执行,它的作用相当于:MySqlStr=”select * from table”,即返回表中所有数据。

言下之意就是:如果用户在多条件查询页面中,不选择任何字段、不输入任何关键词,那么,必将返回表中所有数据;如果用户在页面中,选择了部分字段并且输入了部分查询关键词,那么,就按用户设置的条件进行查询。

说到这里,不知道您是否已明白,其实,where 1=1的应用,不是什么高级的应用,也不是所谓的智能化的构造,仅仅只是为了满足多条件查询页面中不确定的各种因素而采用的一种构造一条正确能运行的动态SQL语句的一种方法。

where 1=0; 这个条件始终为false,结果不会返回任何数据,只有表结构,可用于快速建表

"SELECT * FROM strName WHERE 1 = 0"; 该select语句主要用于读取表的结构而不考虑表中的数据,这样节省了内存,因为可以不用保存结果集。

create table newtable as select * from oldtable where 1=0; 创建一个新表,而新表的结构与查询的表的结构是一样的。

最后说明一下,如果是大数据表,加了这个1=1效率会很低,不要随便乱用,随便弄一个拼接函数就可以了

相关文章:

  • 安全详解之-SQL注入
  • SQL count和case when配合统计给定条件下不重复的记录数

select 统计 没有 为0_sql where 1=1和 0=1 的作用相关推荐

  1. UA MATH567 高维统计II 随机向量8 图的Max-cut问题 0.5近似算法的运行时间分析

    UA MATH567 高维统计II 随机向量8 图的Max-cut问题 0.5近似算法的运行时间分析 我们之前讨论了图的max-cut问题的0.5近似算法,也就是给定一张图,按掷硬币的概率决定是否切开 ...

  2. UA MATH567 高维统计II 随机向量9 图的Max-cut问题 0.878近似算法

    UA MATH567 高维统计II 随机向量9 图的Max-cut问题 0.878近似算法 上一讲我们用整数规划对MAX-CUT问题建了模,CUT(G,x)=12∑xixj=−1Aij=14∑i,jA ...

  3. UA MATH567 高维统计II 随机向量8 图的max-cut问题 0.5近似算法

    UA MATH567 高维统计II 随机向量8 图的Max-cut问题 0.5近似算法 前两讲讨论了随机向量的概率不等式的一个应用:半正定规划近似求解整数规划,这一讲我们讨论它的另一个应用--图的ma ...

  4. select 统计数量_leetcode题库-sql练习精讲系列--十三、简单分组统计类问题

    这是一个系列文章,这个系列的理念是通过一道题,搞懂一类题.涵盖了SQL面试最常考的知识点.搞懂这些题,面试时工作中sql不可能有问题. 文章分为引入问题-完整解析-答案-leetcode题和答案-知识 ...

  5. select 统计数量_SQL应用实战 | 销售数据统计指标

    文末扫码领取资料 [某招聘网站数据表] 本篇文章主要是通过两家超市真实的数据来展示SQL在实战中如何应用,感兴趣的小伙伴可以扫码领取学习资料进行实操练习. 业务背景介绍 项目的实战背景是二家超市的真实 ...

  6. Java统计1到300_java程序员的从0到1:统计某字符串在某文件中出现的次数(面试题)...

    目录: 1. 编程题目 2. 方法一 3. 方法二 4. 方法三 5. 方法四 6. 总结 正文: 1. 编程题目 写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数. 2. ...

  7. 基于微信小程序云开(统计学生信息并导出excel)2.0版

    前言 随着移动端的不断发展,人们大部分的办公及生活应用都开始趋向于移动端.然而在2017年"微信之父"张小龙带领团队,开发了一款叫做微信小程序的东西,它的出现打破了人们认识移动端的 ...

  8. 统计所有n阶方阵(n>0)中既满足自反性规则又满足对称性规则的方阵数量(注:矩阵元素值仅为0或1)

    题目描述 离散数学中,如果n阶方阵对角线元素均为1,称这种方阵满足自反性规则,如果方阵除去对角线元素外,其余元素均满足aij=aji(i,j分别为行.列数),称这种方阵满足对称性规则,现根据如上规则, ...

  9. python中利用jieba库统计词频,counts[word] = counts.get(word,0)+1的使用

    import jieba txt = open("阿甘正传-网络版.txt","r",encoding ="utf-8").read() w ...

最新文章

  1. Html中版权符号的字体问题
  2. 【算法】我面了N+算法岗候选人,这样的给了SSP
  3. 网络切片技术缺点_一文读懂网络切片 - 技术综合版块 - 通信人家园 - Powered by C114...
  4. 计算机技术领域当前的主流技术及社会需求调查报告
  5. 后台取值页面显示——Vue.js
  6. Kubernetes 弃用 Docker !
  7. CISA提醒:UPS联网设备正遭攻击
  8. LNAMP服务器环境(源码安装)
  9. hdu 3600 Simple Puzzle (判断N 数码是否有解)
  10. 2022电工杯AB题思路分析
  11. Hadoop 启动 HDFS DataNode 时报错:Invalid dfs.datanode.data.dir
  12. MPLS virtual private network PE-CE之间的路由协议(OSPF)
  13. 各种路由器设备的发展总结及展望
  14. 网络运维基础知识手册
  15. Python KPM算法
  16. 第5次作业+160+曾元鹏
  17. 滴滴打车创新盈利方式
  18. 2022年全国计算机等级考试(四级)测试题含答案
  19. arcmin 弧分的转换
  20. rosbag包目标片段截取

热门文章

  1. 微软:杀死那个曾经全球第一的浏览器
  2. Anchor-free应用一览:目标检测、实例分割、多目标跟踪
  3. 7天试学计划 | 人工智能核心能力课程招生
  4. 牛!大佬原创的《Python 与数据分析 100 个案例》PDF 可以下载了
  5. 【CVPR 2020】CVPR2020 最新论文下载!看计算机视觉2020在研究什么?
  6. 彻底理解 Cookie,Session,Token
  7. 写给程序员的 18 幅对联,你能看懂几个?
  8. TCP和UDP应用场景
  9. cvelist.jsp
  10. 本科-人工智能复习题