SQL --- where 1=1 与 1<> 1
1、Sql 中的查询语句中的where 字句是为了带条件进行查询,那么使用where 1=1 后查询的是什么
首先:查询表 tb_obge 中的所有字段
select * from dbo.obgexinzi
也可以写成
select * from dbo.obgexinzi where 1=1
因为 1=1 表示永远为真,不起约束作用查询所有,不会报错
1=1 只是为了表示永真,你使用 1<2 a='a',也行,为啥使用where 1=1来,因为 1=1 的运算开销更小,所以常用

2、既然使用where 1=1 和没有使用的效果相同为啥还要用来?
在动态查询的时候可以使用,经常见的查询条件

列句:
String sql ="select * from obgexinzi where 1=1"
if (this.tbsqlUserName.Text.Trim() != string.Empty)//姓名
{
strSql += " and Name like '%" + this.tbsqlUserName.Text.Trim() + "%'";
} if (this.ddlUserSex.Text.Trim() != string.Empty)//性别
{
strSql += " and Sex like '%" + this.ddlUserSex.SelectedValue + "%'";
}
如果要是不使用 where 1=1 ,那么就要用程序进行判断什么时候使用 and
因为这样无疑是错的。
select * from obgexinzi where and Name like
而且你也很难判断,用户使用的是那几个查询条件进行组合查询,要不要加where 或直接用 and ,无疑会,提高程序复杂度
加上后,不管有没有查询条件都不会出错,只要判断条件是不是为空就行,提高运行的效率。
select * from obgexinzi where 1=1 and Name like
3、sql 注入,使用 or 1=1 会把表中所有数据查出来,
查寻没有什么感觉要是使用 删除语句哪
delete from obgexinzi where Name = '周瑜' or 1=1 --删除表中所有

4、 where 1=1 与 1<> 1 之间的关系
select * from obgexinzi where 1=1
-- 实际等效于select * from obgexinzi where true;-- 语句将返回t1中所有的记录行 select * from obgexinzi where 1<>1
-- 实际等效于 select * from obgexinzi where false;-- 语句将返回空记录集
where 1<>1 的作用
当我们只需要获取表的字段(结构)信息,而不需要理会实际保存的记录时,可以使用where 1<> 1
因为系统仅会读取结构信息,而不会将具体的表记录读入内存中,这无疑节省了系统开销。

SQL --- where 1=1 与 1<> 1的更多相关文章
- 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...
- SQL Server 大数据搬迁之文件组备份还原实战
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...
- Sql Server系列:分区表操作
1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...
- SQL Server中的高可用性(2)----文件与文件组
在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...
- EntityFramework Core Raw SQL
前言 本节我们来讲讲EF Core中的原始查询,目前在项目中对于简单的查询直接通过EF就可以解决,但是涉及到多表查询时为了一步到位就采用了原始查询的方式进行.下面我们一起来看看. EntityFram ...
- 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...
- 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...
- 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- SQL Server on Linux 理由浅析
SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...
随机推荐
- java执行-cp报错 error: could not load JDBC driver
首先查看对应的 jar 包是否存在,然后看一下 Server (获取数据库驱动类的名称 driverClassName)是否正确 例如: java -
- August 25th, 2019. Sunday, Week 35th.
It's what you do next that counts, not what happens but what you decide to do about it. 重点不是发生了什么,而是 ...
- 计算机网络基础笔记 运输层协议UDP/TCP
目录 UDP 首部结构 主要特点 TCP 首部结构 主要特点 TCP 可靠性实现 停止等待ARQ协议 连续ARQ协议&滑动窗口协议 拥塞控制 TCP 运输连接管理 连接建立:三次握手 连接释放 ...
- 【CentOS 7】CentOS 7各个版本镜像下载地址(转)
参考链接:https://www.centos.org/download/mirrors/ https://www.cnblogs.com/defineconst/p/11176593.html
- C++继承产生的问题
今天写代码,用到了继承,忘了将父类中的私有成员改为protected,结果一调用父类地函数后,子类中的root指针直接变为了父类中的空的root.私有成员在继承后依然会保留,占一定的内存空间,但却没有 ...
- leetcode-數組篇
Remove Element public class Lc27 { public static int removeElement(int[] nums, int val) { if (nums = ...
- 利用Python进行数据分析-Pandas(第七部分-时间序列)
时间序列(time series)数据是一种重要的结构化数据形式,应用于多个领域,包括金融学.经济学.生态学.神经科学.物理学等.时间序列数据的意义取决于具体的应用场景,主要有以下几种: 时间戳(ti ...
- SpringBoot2.0 整合 SpringSecurity 框架,实现用户权限安全管理
本文源码:GitHub·点这里 || GitEE·点这里 一.Security简介 1.基础概念 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方 ...
- 基于SSM的crm管理系统
学完crm后的第一个项目实践,前端样式与标签库都是现成的. 开发环境 eclipse,mysql,jdk1.7 项目架构 整合思路 Dao层: 1.SqlMapConfig.xml,添加别名,但是需要 ...
- Winform中怎样在工具类中对窗体中多个控件进行操作(赋值)
场景 需求是在窗体加载完成后掉用工具类的方法,工具类中获取窗体的多个控件对象进行赋值. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 ...