sql where 1=1的优缺点分析
复制代码 代码如下:
如果上述的两个IF判断语句不成立,那么,最终的MySqlStr动态构造语句变为:MySqlStr=”select * from table”,即返回表中所有数据。
可以看得出来,这是一条完整的正确的SQL查询语句,能够正确的被执行,并根据数据库是否存在记录,返回数据。
MySqlStr=MySqlStr+“and Age=“+“'Age.Text'“;
该select语句主要用于读取表的结构而不考虑表中的数据,这样节省了内存,因为可以不用保存结果集。
①种假设
}
MySqlStr=”select * from table where 1=1 and Age='18' and Address='云南省文山州广南县小波吗村'”,很明显,该语句是一条正确的语句,能够正确执行,如果数据库有记录,肯定会被查询到。
{
复制代码 代码如下:
如果两个IF都不成立,那么,语句变为:
{
if(Age.Text.Lenght>0)
复制代码 代码如下:
①种假设
string MySqlStr=”select * from table where”;
}
if(Address.Text.Lenght>0)
言下之意就是:如果用户在多条件查询页面中,不选择任何字段、不输入任何关键词,那么,必将返回表中所有数据;如果用户在页面中,选择了部分字段并且输入了部分查询关键词,那么,就按用户设置的条件进行查询。
如果上述的两个IF判断语句,均为True,即用户都输入了查询词,那么,最终的MySqlStr动态构造语句变为:
}
说到这里,不知道您是否已明白,其实,where 1=1的应用,不是什么高级的应用,也不是所谓的智能化的构造,仅仅只是为了满足多条件查询页面中不确定的各种因素而采用的一种构造一条正确能运行的动态SQL语句的一种方法。
where 1=0; 这个条件始终为false,结果不会返回任何数据,只有表结构,可用于快速建表
MySqlStr=”select * from table where Age='18' and Address='云南省文山州广南县小波吗村'”
复制代码 代码如下:
复制代码 代码如下:
如果两个IF都成立,那么,语句变为:string MySqlStr=”select * from table where 1=1 ”;
create table newtable as select * from oldtable where 1=0; 创建一个新表,而新表的结构与查询的表的结构是一样的。
上述的两种假设,代表了现实的应用,说明,语句的构造存在问题,不足以应付灵活多变的查询条件。
MySqlStr=MySqlStr+“and Address=“+“'Address.Text'“;
现在,也存在两种假设
②种假设
复制代码 代码如下:
if(Address.Text.Lenght>0)
{
假如我们将上述的语句改为:
②种假设
{
举个例子,如果您做查询页面,并且,可查询的选项有多个,同时,还让用户自行选择并输入查询关键词,那么,按平时的查询语句的动态构造,代码大体如下:
MySqlStr=MySqlStr+“Age=“+“'Age.Text'“;
MySqlStr=MySqlStr+“and Address=“+“'Address.Text'“;
"SELECT * FROM strName WHERE 1 = 0";
复制代码 代码如下:
MySqlStr=”select * from table where 1=1”,现在,我们来看这条语句,由于where 1=1 是为True的语句,因此,该条语句语法正确,能够被正确执行,它的作用相当于: 二、使用 where 1=1 的好处
MySqlStr=”select * from table where“
if(Age.Text.Lenght>0)
一、不用where 1=1 在多条件查询中的困扰
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/sql/mssql/3049.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
sql server 关于设置null的一
时间:2020-12-28
-
详解SQL游标的用法
时间:2020-12-27
-
vs code连接sql server数据库步
时间:2020-12-27
-
图书管理系统的sqlserver数
时间:2020-12-25
-
详解SQL 通配符
时间:2020-12-25
-
sql四大排名函数之ROW_NUM
时间:2020-12-25
-
SQLServer数据库处于恢复挂
时间:2020-12-24
-
Win10 64位安装个人版SQL20
时间:2020-12-24
热门文章
-
sqlserver中查询横表变竖表的sql语句简析
时间:2020-12-08
-
关于SQL Server查询语句的使用
时间:2020-12-13
-
SQL Server简单模式下误删除堆表记录恢复方
时间:2020-12-12
-
MSSQL教程_mssql数据库教程_MSSQL基础教程_第
时间:2020-12-13
-
详解SQL游标的用法
时间:2020-12-27
-
sql server 关于设置null的一些建议
时间:2020-12-28
-
jdbc连接sql server数据库问题分析
时间:2020-12-10
-
mssql关于一个表格结构的另外一种显示(表
时间:2020-12-11
-
SQL Server数据库入门学习总结
时间:2020-12-10
-
使用SqlBulkCopy时应注意Sqlserver表中使用缺
时间:2020-12-09
