1分钟搞懂 where 1=1 和where 1=0 的作用

您所在的位置:网站首页 where的作用 1分钟搞懂 where 1=1 和where 1=0 的作用

1分钟搞懂 where 1=1 和where 1=0 的作用

#1分钟搞懂 where 1=1 和where 1=0 的作用| 来源: 网络整理| 查看: 265

一、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=0

where 1=0 这个条件始终为 false,结果不会返回任何数据,只有表结构,可用于快速建表 。 可以利用 create table newtable as select * from oldtable where 1=0; 创建一个新表,而新表的结构与查询的表(旧的表)的结构是一样的。

举个例子: 这是原始的表:: 在这里插入图片描述

现在利用 where 1=0 来创建新的表: 在这里插入图片描述 可以看到,新的表里面没有数据,但是表的结构与原来的user表是一样的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3