浅淡SQL中where 1=1和0=1的作用

SQL语句中的where 1=1和0=1用法 where 1=1 这个条件始终为True, 用于动态构造不确定条件数的查询语句,在不定数量查询条件情况下,1=1可以很方便的规范语句。 select * from emp where 1=1 [and 条件n]; 举个例子,如果您做查询页面,让用户自行选择并输入查询关键词,代码大体如下: string MySqlStr=”select * from table where”; ... 阅读详情

where 1=1&where 0=1经常在SQL语句中见到,看见了,过去了,不知道那是什么意思,不知道这条语句的作用,这里笔者为大家一一道来......

where 1=1; 这个条件始终为True,在不定数量查询条件情况下,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动态构造语句变为:

  1. MySqlStr=”select * from table where“  

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

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

二、使用 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都成立,那么,语句变为:

MySqlStr=”select * from table where  1=1 and Age='18'  and Address='云南省文山州广南县小波吗村'”,很明显,该语句是一条正确的语句,能够正确执行,如果数据库有记录,肯定会被查询到。

②种假设

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

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;    //创建一个新表,而新表的结构与查询的表的结构是一样的。  

 
sql 1=1和1=0的作用 使用 where 1=1 的好处 不用where 1=1 在多条件查询中的困扰 立即下载

相关推荐

sql中where 1=1 与1=0的作用1

②种假设  如果两个IF都不成立,那么,语句变为:  MySqlStr=”select * from table where 1=1”,现在,我们来看这条语句,

SQL语句 where 1=1 和 where 0=1

SQL语句 where 1=1 和 where 0=1where 1=1where标签where 0=1总结 where 1=1 先看下mybatis中的sql代码 <select id="" parameterType = ""> SELECT * FROM users WHERE <if test="userName != null "> user_name = #{userName} </if> <if test="userAge !

Poison__的博客 1699

C#实战:如何用winmm.dll打造毫秒级高精度定时器(附完整代码)

本文详细介绍了在C#中利用winmm.dll实现毫秒级高精度定时器的完整方案。针对.NET内置定时器精度不足的问题,通过调用timeSetEvent等原生API,提供了超越系统时钟中断周期的精准定时能力。文章包含核心原理剖析、完整的封装类代码以及音视频处理、游戏开发等场景下的实战应用与性能调优指南。

ujm5678901的博客 689

sql中where 1=1 和where 0=1的作用

where 1=1可以很方便地规范语句,使得条件查询拼接字符串的时候,可以不用考虑使用了哪个条件作为第一个条件, where 0=1不会返回任何记录,只会返回表结构。可用于快速建立表: create table table2 as select  * from table1 where 0=1; 性能分析: where 1=1会被数据库优化掉,因此无需考虑性能损耗。 wh

cherishpart的专栏 1186

液晶电视维修必看:TCON逻辑板故障排查全指南(附常见问题解决方案)

本文详细解析了液晶电视TCON逻辑板的工作原理与故障排查方法,涵盖LVDS信号处理、DC-DC电压系统等核心知识。提供从基础测量到高级维修的完整指南,帮助技术人员快速诊断黑屏、竖线等常见故障,并给出预防性维护建议,提升维修效率与成功率。

weixin_42535461的博客 614

【迁移学习综述】

迁移学习的目标是将某个领域或任务上学习到的知识应用到不同的但相关的领域或问题中。迁移学习的研究来源于一个观测:人类可以将以前的学到的知识应用于解决新的问题,更快的解决问题或取得更好的效果。迁移学习被赋予这样一个任务:从以前的任务当中去学习知识(knowledge)或经验,并应用于新的任务当中。换句话说,迁移学习目的是从一个或多个源任务(source tasks)中抽取知识、经验,然后应用于一个目标领域(target domain)当中去。

afadgas的博客 4318

sql where 1=1和 0=1 的作用

where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句。 一、不用where1=1在多条件查询中的困扰   举个例子,如果您做查询页面,并且,可查询的选项有多个,同时,还让用户自行选择并输入查询关键词,那么,按平时的查询语句的动态构造,代码大体如下:   string MySqlStr=”select * from table wh...

weixin_30556161的博客 460

SAP 零售 FMS 物料主数据(一)

SAP 零售 FMS 物料主数据(一) SAP 对于鞋服行业最新的解决方案-FMS(相当于原来的AFS+Retail);更偏向与零售; 商品主数据与原来的AFS大不相同,取消了原来的Grid的网格概念,取而代之的是变式;商品主数据维护也偏向于Retail的维护模式;事物代码也不是MM01而是MM41 /MM46; 在维护商品主数据前,需要与商品部沟通定义各种商品相关的规范如编码规则,大中小类 ,颜色库,尺码库等,此处不赘述; 创建商品需要确定哪些物料是变式物料,哪些是常规不带特性的单一物料;这决定了在创建商

weixin_45518759的博客 5061

浅淡SQL中where 1=1和0=1的作用及多种查询方法示例

where 1=1&where 0=1经常在SQL语句中见到,看见了,过去了,不知道那是什么意思,不知道这条语句的作用,这里笔者为大家一一道来...... where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句。 一、不用where  1=1  在多条件查询中的困扰 举个例子,如果您做查询页面,并且,可查询的选项有多个,同时,还让用户自

THX187的博客 556

分布式锁特点、以及用python3实现redis分布式锁

以下是 Python3 实现 Redis 分布式锁的详细教程,包含代码示例、原理说明及最佳实践。

数据知道的博客 2万+

OBYC自动科目确定整理

WGI是用来重估发货的,通过比较发货时的价格和最新计算的价格,以此将所有差异过账到分配给此事务码的总账科目。是工厂还是公司,一般项目中都是使用工厂,使用工厂的意思就是物料在每个工厂下有一个价格,如果使用公司,则一个公司下的所有工厂都使用一个价格。如果该物料用的是移动平均价,那么该库存依然还存在的情况下,这个价格差异会过账到存货科目上而不会过账到存货的价格差异科目上。用于确定存货评估过账的存货冲抵科目。事务码WGR是用来重估工厂收货的,根据 计算出来的价格差异,把库存的调整过账分配给这个事务码中的总账科目。

nopicture的博客 347

mysql字段用 0 1好处_浅淡SQL中where 1=1和0=1的作用

where 1=1&where 0=1经常在SQL语句中见到,看见了,过去了,不知道那是什么意思,不知道这条语句的作用,这里笔者为大家一一道来......where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句。一、不用where1=1在多条件查询中的困扰举个例子,如果您做查询页面,并且,可查询的选项有多个,同时,还让用户自行选择并输入查询关键词,...

weixin_33172728的博客 246

通过傅里叶变换进行音频变声变调

在游戏或者一些特殊场景下为了提高娱乐性或者保护声音的特征,我们会对音频进行变声变调处理。

yang1fei2的博客 1815

测试飞快、生产卡死:你的 SQL 性能瓶颈,被这项技术破解了

你是否遇到过这样的场景:一个看似复杂的SQL,在测试环境运行飞快,一到生产环境就“卡死”,一查执行计划,发现子查询生成了一个巨大的中间结果集,导致后续操作全部陷入性能泥潭?这项技术也体现了国产数据库内核研发从“功能实现”到“深度优化”的演进,是国产数据库在面对企业级复杂应用时,提供高性能、智能化体验的一个关键缩影。金仓数据库的解决方案没有采用简单的“暴力下推”,而是设计了一个严谨的 “先判定,再评估” 自动化决策框架。先全表扫描64400行,生成32200行的中间结果,再Hash Join。

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 1万+

分布式训练中All-Reduce、All-Gather、Reduce-Scatter原理

Reduce-Scatter = 先对所有进程的数据做 Reduce(如 sum / mean),再把结果“切分”分发给各进程。(是 Reduce + Scatter 的融合操作。

comli_cn的博客 338

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Mysql数据库中Where 1=1 和 1=0的作用

1.1.where 1=1 是为True的语句,语句语法正确,能够被正确执行,它的作用相当于:”select * from table”,即返回表中所有数据。1.2.在多条件查询中,减少if判断 只是为了满足多条件查询页面中不确定的各种因素而采用的一种构造一条正确能运行的动态SQL语句的一种方法。

qq_34548728的博客 551

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

SQL注入从0到1

SQL注入为OWASP top 10漏洞之一,本文带你由浅入深了解SQL注入基本原理,深度掌握各种注入方式

Elite的博客 3719

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

谈谈SQL中where 1=1和0=1的作用

一、where 1=1 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句,用于拼接条件。string MySqlStr=”select * from table where 1=1 ; if(Age.Text.Lenght>0) { MySqlStr=MySqlStr+“and Age=“+“'Age.Text'“; } if(Address.Tex

林世广 1274
上一篇: 搭建Android开发环境
下一篇: 谈谈HTML5
RuanJava
博客等级 码龄17年 13粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值