1分钟搞懂 where 1=1 和where 1=0 的作用 |
您所在的位置:网站首页 › where的作用 › 1分钟搞懂 where 1=1 和where 1=0 的作用 |
一、sql 语句之 where 1=1
先说下它的目的,where 1=1 就是为了使该 sql 语句的条件永远为true。 通常用于(多)条件查询,在构造动态sql语句时可以防止sql语句结构不当而出错。 举个例子就加清晰了,比如说现在要根据几个条件查询一张表,也就是常说的多条件查询: String sql="select * from table where "; if(age>18){ sql=sql+ "age=" + age; } if(sex.equals("男")){ sql=sql + "and sex='"+sex+"'"; }如果上述的两个 if 判断语句都不成立,那么,最终的 sql 动态构造语句变为: sql=" select * from table where "很明显,运行都会报错,更别说查询数据了。 但是加上 where 1=1 之后,即使两个if都不正确,仍然可以正常执行语句。 其实就是为了构造一个恒等式,写成2=2,1+1=2,也是可以的,因为1=1运算开销更小,且容易记忆,所以一般都采用这种形式。 二、sql 语句之 where 1=0where 1=0 这个条件始终为 false,结果不会返回任何数据,只有表结构,可用于快速建表 。 可以利用 create table newtable as select * from oldtable where 1=0; 创建一个新表,而新表的结构与查询的表(旧的表)的结构是一样的。 举个例子: 这是原始的表:: 现在利用 where 1=0 来创建新的表: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |