为什么在写SQL时,总会有这样的句子: where 1=1

 我来答
明智还清澈的饼干9013
2011-08-17 · TA获得超过634个赞
知道小有建树答主
回答量:728
采纳率:0%
帮助的人:469万
展开全部
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之外的其它永真永假的条件同理。
wangzhiqing999
2011-08-17 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3296万
展开全部
这个一般是 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 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
guoweifyj
2011-08-17 · TA获得超过346个赞
知道小有建树答主
回答量:158
采纳率:100%
帮助的人:168万
展开全部
这是一个条件,1=1 既是恒为真,1=2 既是恒为假。
比如:你
SELECT * INTO TB_A FROM TB_B WHERE 1=1 这就把TB_B中的数据一起复制到TB_A中,如果是WHERE 1=2,条件为假则只复制表结构...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzp4881
推荐于2017-09-26 · TA获得超过2394个赞
知道大有可为答主
回答量:2825
采纳率:0%
帮助的人:2989万
展开全部
这样是方便在后面再加条件
sql="select * from where 1=1"
if ... then sql=sql&" and aa='a'"
...
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式