SQL中where 1=1语句的作用
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
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("")){ 如果不写1=1呢,那么在每一个不为空的查询条件面前,都必须判断有没有where字句,否则要在第一个出现的地方加where 今天看到:"SELECT * FROM strName WHERE 1 = 0"; 查询得出答案: 该select语句主要用于读取表的结构而不考虑表中的数据,这样节省了内存,因为可以不用保存结果集。 另外,这个用在什么地方呢?主要用于创建一个新表,而新表的结构与查询的表的结构是一样的。如下SQL语句: create table newtable as select * from oldtable where 1=0; 该文章在 2011/5/4 23:48:48 编辑过 |
关键字查询
相关文章
正在查询... |