度量快速开发平台-专业、快速的软件定制快开平台

标题: sql where 1=1 和 where 1=0的作用 [打印本页]

作者: caixuqad    时间: 2020-7-11 17:36
标题: sql where 1=1 和 where 1=0的作用
看到很多sql语句后边都有一个 where 1=1 一开始不太理解为什么要这样写,上网查询了下才明白是怎么回事。


where 1=1的用处
用于动态SQL
例如 lv_string := 'select tbl_name,tbl_desc from tbl_test where 1=1 '||l_condition;
当用户选择了查询的名称'abc'时l_condition :='and tbl_name = ''abc'''';但是当用户没有
选择名称查询时l_condition就为空 这样 lv_string = 'select tbl_name,tbl_desc from tbl_test
where 1=1 ' ,运行也不会出错,相当于没有限制名称条件。但是如果没有1=1的条件,则lv_string =
'select tbl_name,tbl_desc from tbl_test where ';这样就会报错。


where 1=0;
这个条件始终为false,结果不会返回任何数据,只有表结构,可用于快速建表 "SELECT * FROM strName WHERE 1 = 0"; 该select语句主要用于读取表的结构而不考虑表中的数据,这样节省了内存,因为可以不用保存结果 集。   create table newtable as select * from oldtable where 1=0;  创建一个新表,而新表的结构与查询的表的结构是一样的

作者: 张兴康    时间: 2020-7-11 17:58

作者: caixuqad    时间: 2020-7-12 17:44

作者: fteair    时间: 2020-7-13 09:28

作者: caixuqad    时间: 2020-7-13 18:06

作者: caixuqad    时间: 2020-7-14 17:39





欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2