where 1=1有什么用?在SQL语言中,写这么一句话就跟没写一样。但是这看似多余的一条语句,却有其独特的用处。
select * from table1 where 1=1与select * from
table1完全没有区别,甚至还有其他许多写法,1<>2,'a'='a','a'<>'b',其目的就只有一个,where的条件为永真,得到的结果就是未加约束条件的。
在SQL注入时会用到这个,例如select * from table1 where name='lala'给强行加上select * from
table1 where name='lala' or 1=1这就又变成了无约束的查询了。
最近发现的妙用在于,在不定数量查询条件情况下,1=1可以很方便的规范语句。例如一个查询可能有name,age,height,weight约束,也可能没有,那该如何处理呢?
String sql=select * from table1 where 1=1
为什么要写多余的1=1?马上就知道了。
if(!name.equals("")){
sql=sql+"name='"+name+"'";
}
if(!age.equals("")){
sql=sql+"age'"+age+"'";
}
if(!height.equals("")){
sql=sql+"height='"+height+"'";
}
if(!weight.equals("")){
sql=sql+"weight='"+weight+"'";
}
如果不写1=1呢,那么在每一个不为空的查询条件面前,都必须判断有没有where字句,否则要在第一个出现的地方加where
今天看到:"SELECT * FROM strName WHERE 1 = 0";
不理解为什么有1=0?
查询得出答案:
该select语句主要用于读取表的结构而不考虑表中的数据,这样节省了内存,因为可以不用保存结果集。
另外,这个用在什么地方呢?主要用于创建一个新表,而新表的结构与查询的表的结构是一样的。如下SQL语句:
create table newtable as select * from oldtable where 1=0;
分享到:
相关推荐
在SQL查询中,`WHERE 1=1`和`WHERE 1=0`是两种特殊用法,它们在构建动态查询语句时起到关键作用。本文将详细解释这两种条件语句的作用及其应用场景。 首先,`WHERE 1=1`是一个恒为真的条件,无论何时,这个表达式都...
在探讨“where 1=1”这一SQL语句的含义之前,我们首先需要理解SQL(Structured Query Language,结构化查询语言)的基本概念及其在数据库操作中的作用。SQL是一种用于管理关系型数据库的标准语言,它被广泛应用于...
SQL 语句中 where 条件后 写上 1=1 是什么意思!.doc
通过在动态SQL查询语句中添加 `WHERE 1=1`,可以确保无论用户是否提供了具体的搜索条件,查询语句总是合法且可执行的。这是一种简单但实用的方法,有助于提高代码的健壮性和灵活性。此外,`WHERE 1=0` 也可以作为一...
在SQL查询中,`WHERE 1=1` 是一个经常被使用的技巧,尤其是在构建动态或者可扩展的SQL语句时。这个表达式看起来似乎没有实际的过滤作用,因为`1`总是等于`1`,但它在多种场景下具有重要的意义。 首先,`WHERE 1=1` ...
不使用`WHERE 1=1`的情况下,当用户在多条件查询中输入不同参数时,动态构建SQL语句会遇到一些挑战。例如,当构建如下的查询语句: ```sql string MySqlStr="select * from table where"; if(Age.Text.Length > 0) ...
通过配置数据库连接信息和要执行的sql语句,可实现定时执行多个sql语句。 所要执行的语句只能是写死的,可支持sqlserver mysql oracle。 配置说明: config/sys.properties 中指定数据库类型及连接信息,执行间隔...
动态拼接sql语句工具类,拼接where后面语句 配合原生jdbc仿动态sql注入 if (ObjectUtil.isNotEmpty(maxLat)&&ObjectUtil.isNotEmpty(minLat)){ sqlParamList.add(new SqlParam("lat",minLat, SqlOpEnum.GE)); ...
在SQL语言中,可以使用Update表名Set字段名=case字段名when值1then值2else值三endFrom表名Where条件语句来实现条件语句的写法。 四、取余函数Mod() 在PB脚本中,可以使用Mod(要取余数的值,取余值)函数来实现取余数...
### Delphi中SQL语句的使用总结 在Delphi中使用SQL语句是与数据库进行交互的重要手段之一。本文将详细介绍如何在Delphi环境中构造和执行SQL查询,并给出具体的示例来帮助理解。 #### 一、基本SQL查询的构建 在...
方法1、使用语言的for语句循环生成SQL语句中的“?”,类似这样: 新建方法 func placeholders(n int) string { var b strings.Builder for i := 0; i 0 { b.WriteString("?") } return b.String() } 调用...
这里初始化SQL语句为“select * from book where 1=1”,其中`where 1=1`是一个常见的技巧,用于确保后续添加的条件之前总能有`WHERE`或`AND`关键字。 2. **根据条件拼接SQL语句**: - **bookID条件**: ```...
SQL Server 中的动态 SQL 语句是一种灵活的查询方式,它可以根据不同的情况生成不同的 SQL 语句。动态 SQL 语句可以用来实现复杂的业务逻辑,提高查询效率和灵活性。 普通 SQL 语句和动态 SQL 语句的区别 普通 SQL...
OracleSqlConvert4MysqlSqlTool.java这个源码工具,根据描述,应该是实现了自动读取Oracle SQL语句,分析其结构,并根据MySQL的语法规则进行转换,然后将转换后的SQL语句保存到指定的目标文件中。这个工具简化了手动...
在SQL中,有四种基本的数据操作语句:INSERT、SELECT、UPDATE和DELETE,它们构成了SQL的核心功能。 1. INSERT语句: INSERT语句用于向数据库表中插入新的记录。在例子中,我们看到如何向EMPLOYEES表中添加新员工的...
在数据库管理系统(如MySQL、Oracle、SQL Server等)中,SQL语句是不可或缺的一部分。 1. SQL基础语法 SQL的基础语法包括SELECT、INSERT、UPDATE、DELETE四大语句,它们分别用于查询、插入、更新和删除数据。 - ...
注意,参数的位置是基于它们在SQL语句中出现的顺序,从1开始计数。 ### 总结 使用问号参数化查询是编写安全、高效SQL语句的关键实践。它不仅可以防范SQL注入,还能优化性能,同时减少因字符串拼接导致的潜在错误。...
例如,`UPDATE table1 SET field1=value1 WHERE range`。 ##### 2. 数据查询语言(DQL) DQL主要用于数据的检索和分析,最典型的命令是SELECT语句。ArcGIS中的SELECT语句可以进行复杂的数据筛选,如基于属性值的查询...
添加了一条基础的SQL语句,其中`Tuser`是数据库中的表名,`t`是别名,`where 1=1`是一个常用的技巧,可以确保后面的条件能够正常拼接到SQL语句中。 4. **根据条件添加额外的SQL子句**: ```java if (name != ...