为什么SQL语句Where 1=1 and在SQL Server中不影响性能
3个回答
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;
该语句将返回空记录集,对于只需要知道数据结构的情形下,这种写法对于减轻网络负担节约系统开销特别有帮助。
"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;
该语句将返回空记录集,对于只需要知道数据结构的情形下,这种写法对于减轻网络负担节约系统开销特别有帮助。
展开全部
因为筛选条件里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;
该语句将返回空记录集,对于只需要知道数据结构的情形下,这种写法对于减轻网络负担节约系统开销特别有帮助。
"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;
该语句将返回空记录集,对于只需要知道数据结构的情形下,这种写法对于减轻网络负担节约系统开销特别有帮助。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1=1 本来就为 true ,不影响判断过程,也不影响判断结果,加上 1=1 and 只是为了方便使用字符串连接,这一点相比字符串 连接判断 来说,性能应该不影响
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询