SQL语句中WHERE 1=1的意义

一、动态SQL拼接

为了满足多条件查询页面中不确定的各种因素而采用的一种构造一条正确能运行的动态SQL语句的一种方法

二、查询表结构

优点:数据库开销小。

where 1=1是sql语句条件逻辑判断表达式,由于1=1成立,恒为真,该表达式1=1将始终返回"真"。这种写法实际目的是为了获取逻辑值"True",其实诸如2=2, 1+2=3,'中'='中'等之类的写法都可以返回逻辑值"True",只不过1=1的运算开销更小,故被应用的最普遍。下面例子将有助于理解有关概念:

1) select * from t1 where 1=1; -- 实际等效于select * from t1 where true;-- 语句将返回t1中所有的记录行

2) select * from t1 where 1<>1; -- 实际等效于 select * from t1 where false;-- 语句将返回空记录集

说明:例1)实际上等同于不加任何筛选条件,有些画蛇添足,where 1=1的实际意义不如where 1<>1(或者where 1=0)来得有用,当我们只需要获取表的字段(结构)信息,而不需要理会实际保存的记录时;

          例2)的写法将是非常可去取的,因为系统仅会读取结构信息,而不会将具体的表记录读入内存中,这无疑节省了系统开销。

posted @ 2020-11-13 16:30  醴酒微甜  阅读(361)  评论(0编辑  收藏  举报