为什么SQL语句Where 1=1 and在SQL Server中不影响性能

 我来答
千锋教育
2018-08-01 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
因为筛选条件里1=1成立 ,该表达式将始终返回布尔值True(真)
"Where 1=1 and "实际等于 Where 表达式1(1=1)=true and 表达式2
当表达式2=True 时
Where true and true
两个条件都为“真”,“真”与“真”返回“真”
当表达式2=false 时
Where true and false
两个条件一“真”一“假”,“真”与“假”返回“假”
所以SQL语句筛选表达式(1=1)对整体条件判断结果无影响,实质筛选取决于and后面的条件筛选结果。

我们扩展看一下另一种写法"Where 1>1 and "
1>1不成立,该表达式将始终返回布尔值False(假)
当表达式2=True 时
两个条件一“假”一“真”,“假”与“真”返回“假”
当表达式2=False 时
两个条件均为“假”,假”与“假”返回“假”
此时不管and后面的条件筛选结果如何,"Where 1>1 and "整体结果将始终为”假“,SQL语句将始终返回空记录集,and 后面的条件对整体结果无影响。

当我们只需要表结构而不需要数据时,我们可以运行下列语句,例如:
select * from tableName where 1>1;
该语句将返回空记录集,对于只需要知道数据结构的情形下,这种写法对于减轻网络负担节约系统开销特别有帮助。
tjrmgs
2016-07-25 · TA获得超过5765个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1030万
展开全部
因为筛选条件里1=1成立 ,该表达式将始终返回布尔值True(真)
"Where 1=1 and "实际等于 Where 表达式1(1=1)=true and 表达式2
当表达式2=True 时
Where true and true
两个条件都为“真”,“真”与“真”返回“真”
当表达式2=false 时
Where true and false
两个条件一“真”一“假”,“真”与“假”返回“假”
所以SQL语句筛选表达式(1=1)对整体条件判断结果无影响,实质筛选取决于and后面的条件筛选结果。

我们扩展看一下另一种写法"Where 1>1 and "
1>1不成立,该表达式将始终返回布尔值False(假)
当表达式2=True 时
两个条件一“假”一“真”,“假”与“真”返回“假”
当表达式2=False 时
两个条件均为“假”,假”与“假”返回“假”
此时不管and后面的条件筛选结果如何,"Where 1>1 and "整体结果将始终为”假“,SQL语句将始终返回空记录集,and 后面的条件对整体结果无影响。

当我们只需要表结构而不需要数据时,我们可以运行下列语句,例如:
select * from tableName where 1>1;
该语句将返回空记录集,对于只需要知道数据结构的情形下,这种写法对于减轻网络负担节约系统开销特别有帮助。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幽梦暴力
2016-07-25 · TA获得超过212个赞
知道小有建树答主
回答量:297
采纳率:0%
帮助的人:101万
展开全部
1=1 本来就为 true ,不影响判断过程,也不影响判断结果,加上 1=1 and 只是为了方便使用字符串连接,这一点相比字符串 连接判断 来说,性能应该不影响
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式