转自:http://hi.baidu.com/nenggan123/blog/item/f9d17efad238b2106c22ebec.html
where 1=1有什么用?在SQL语言中,写这么一句话就跟没写一样。
select * from table1 where 1=1与select * from table1完全没有区别,甚至还有其他许多写法,12,'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;
分享到:
相关推荐
golang中规则引擎的一种查询语言类似于SQL中的where部分
where 1=1有什么用?在SQL语言中,写这么一句话就跟没写一样。 select * from table1 where 1=1与select * from table1完全没有区别,甚至还有其他许多写法,1<>2,’a’=’a’,’a'<>’b’,其目的就只有一个...
方法1、使用语言的for语句循环生成SQL语句中的“?”,类似这样: 新建方法 func placeholders(n int) string { var b strings.Builder for i := 0; i 0 { b.WriteString("?") } return b.String() } 调用...
3. SQL语言对数据库对象的定义使用哪三个SQL命令关键字? Create,alter,drop。 4. 标准的SQL语言与实际数据库产品中的SQL数据库语言的关系? 绝大多数实际数据库产品并不完全支持标准SQL,SQL的某些功能在实际...
SQL(Structured Query Language)是一种功能强大、通用的关系数据库语言,而SQL语言的核心是SELECT语句,其中WHERE子句的条件表达式表现得灵活而复杂,和谓词DISJunctive所形成的嵌套查询也成为部分人理解的难点。...
SQL语言查询 本文主要介绍了SQL语言查询的基本概念和应用,通过实验室的实验报告,展示了SQL语言查询的实际应用场景和操作方法。 一、实验目的 本实验的目的是为了让学生能够熟悉SQL语言查询的基本语法和操作方法...
3. 数据查询:在众多的 SQL 命令中,select 语句应该算是使用最频繁的。select 语句主要被用来对数据库进行查询并返回符合用户查询标准的结果数据。Select 语句的语法格式如下:select column1 [, column2,etc] from...
上面是对DDL语言操作的经典语句的集合。上面是对DDL语言操作的经典语句的集合。上面是对DDL语言操作的经典语句的集合。
详析SQL语言的WHERE子句与HAVING子句.pdf
关系数据库入门 详细的介绍了SQL语言 查询没有选修1号课程的学生姓名。 SELECT Sname FROM Student WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno = Student.Sno AND Cno='1');
SQL语言中,AS关键字用于为表或列指定别名,以便于查询和简化语句。在本文中,我们将总结一些常用的SQL语句,并解释AS用法的细节。 一、DELETE语句 DELETE语句用于删除表中的记录。例如,以下语句删除table1中id列...
关系数据库标准语言——SQL语言 这篇文章主要介绍了关系数据库标准语言SQL语言的基本概念和应用,包括数据操纵语言(DML)和数据定义语言(DDL)。在数据操纵语言中,我们可以使用INSERT语句向表中插入数据,UPDATE...
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 ) 11、说明:四表联查问题: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c ...
数据查询语言是用于查询数据库中的数据,基本语法结构为SELECT <字段名1, 字段名2...> FROM <表名1, 表名2...> WHERE <条件>;其中,SELECT用于选择要查询的字段,FROM用于指定要查询的表,WHERE用于指定查询的条件。...
2. 高度的非过程化:在使用SQL语言操作数据库时,用户只需要说明“做什么”,而不需要说明“怎样做”。 3. 面向集合的操作方式:SQL语言采用集合操作方式,不仅查询结果可以是多条记录的集合,而且一次插入、删除、...
在SQL查询中,一个SELECT-FROM-WHERE查询语句称为一个查询块;将一个查询块嵌入到另一个查询块的WHERE子句或HAVING子句中,称为嵌套子查询
各种sql实用例子 (1)数据记录筛选: ...sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere条件表达式" (3)删除数据记录: sql="deletefrom数据表where条件表达式" sql="deletefrom数据
VB中SQL语言查询优化设计 SQL语言是数据库管理系统中最重要的组成部分之一,它提供了对数据库的访问、管理和维护功能。VB开发工具中,SQL语言查询优化设计是非常重要的,能够提高数据库的访问效率和性能。本文将从...
"SQL语言练习题和答案" 第三章 SQL 语言练习题和答案是关系数据库管理系统中的一种重要语言,用于定义、操作和控制关系数据库中的数据。下面我们将对该语言的基本概念和操作进行详细的解释。 SQL 语言的基本概念 ...
sql语言参考大全(光盘源码)书中的实例后台数据库采用了SQL Server 2000、SQL Server 2005、Oracle、MySQL、Access5种数据库。光盘包含了本书运行需要的光盘源程序文件(脚本)和光盘使用说明书。光盘源程序文件...