为什么在写SQL时,总会有这样的句子: where 1=1
4个回答
展开全部
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 ';这样就会报错。
除了1=1 或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 ';这样就会报错。
除了1=1 或1<>1之外的其它永真永假的条件同理。
展开全部
这个一般是 C# 或者 Java 或者其他语言, 在拼写 SQL 的时候,方便的处理。
代码一般是:
string sql = "SELECT * FROM 表 WHERE 1=1 ";
if( 画面上输入框1 输入了什么) {
sql = sql + " AND 字段1 = 1";
}
if( 画面上输入框2 输入了什么) {
sql = sql + " AND 字段2 = 2";
}
......
执行 SQL, 返回结果。
看了上面的例子代码, 你可以理解么?
如果前面不写 1=1。
那么每次都要判断, 要不要加一个 AND 。
代码一般是:
string sql = "SELECT * FROM 表 WHERE 1=1 ";
if( 画面上输入框1 输入了什么) {
sql = sql + " AND 字段1 = 1";
}
if( 画面上输入框2 输入了什么) {
sql = sql + " AND 字段2 = 2";
}
......
执行 SQL, 返回结果。
看了上面的例子代码, 你可以理解么?
如果前面不写 1=1。
那么每次都要判断, 要不要加一个 AND 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是一个条件,1=1 既是恒为真,1=2 既是恒为假。
比如:你
SELECT * INTO TB_A FROM TB_B WHERE 1=1 这就把TB_B中的数据一起复制到TB_A中,如果是WHERE 1=2,条件为假则只复制表结构...
比如:你
SELECT * INTO TB_A FROM TB_B WHERE 1=1 这就把TB_B中的数据一起复制到TB_A中,如果是WHERE 1=2,条件为假则只复制表结构...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样是方便在后面再加条件
sql="select * from where 1=1"
if ... then sql=sql&" and aa='a'"
...
sql="select * from where 1=1"
if ... then sql=sql&" and aa='a'"
...
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询