sql where 1=1和 0=1 的效果ITeye - 众发娱乐

sql where 1=1和 0=1 的效果ITeye

2019年03月25日08时25分34秒 | 作者: 映安 | 标签: 句子,查询,假定 | 浏览: 3031

where 1=1; 这个条件一直为True,在不定数量查询条件情况下,1=1能够很便利的标准句子。

一、不必where  1=1  在多条件查询中的困扰

 

举个比如,假定您做查询页面,而且,可查询的选项有多个,一起,还让用户自行挑选并输入查询关键词,那么,按平常的查询句子的动态结构,代码大体如下:

string MySqlStr=”select * from table where”;

if(Age.Text.Lenght 0)
{
MySqlStr=MySqlStr+“Age=“+“Age.Text“;
}

if(Address.Text.Lenght 0)
{
MySqlStr=MySqlStr+“and Address=“+“Address.Text“;
}

①种假定

假定上述的两个IF判别句子,均为True,即用户都输入了查询词,那么,终究的MySqlStr动态结构句子变为:

MySqlStr=”select * from table where Age=18  and Address=云南省文山州广南县小波吗村”

 

能够看得出来,这是一条完好的正确的SQL查询句子,能够正确的被履行,并依据数据库是否存在记载,回来数据。

②种假定

假定上述的两个IF判别句子不建立,那么,终究的MySqlStr动态结构句子变为:

MySqlStr=”select * from table where“

现在,咱们来看一下这条句子,由于where关键词后边需求运用条件,可是这条句子底子就不存在条件,所以,该句子便是一条过错的句子,必定不能被履行,不只报错,一起还不会查询到任何数据。

上述的两种假定,代表了实际的运用,阐明,句子的结构存在问题,不足以敷衍灵敏多变的查询条件。

二、运用 where  1=1  的优点

 

假定咱们将上述的句子改为:

string MySqlStr=”select * from table where  1=1 ”;

 

if(Age.Text.Lenght 0)
{
MySqlStr=MySqlStr+“and Age=“+“Age.Text“;
}

if(Address.Text.Lenght 0)
{
MySqlStr=MySqlStr+“and Address=“+“Address.Text“;
}

现在,也存在两种假定

①种假定

假定两个IF都建立,那么,句子变为:

MySqlStr=”select * from table where  1=1 and Age=18  and Address=云南省文山州广南县小波吗村”,很明显,该句子是一条正确的句子,能够正确履行,假定数据库有记载,必定会被查询到。

 

②种假定

假定两个IF都不建立,那么,句子变为:

MySqlStr=”select * from table where 1=1”,现在,咱们来看这条句子,由于where 1=1 是为True的句子,因而,该条句子语法正确,能够被正确履行,它的效果相当于:MySqlStr=”select * from table”,即回来表中所有数据。

言下之意便是:假定用户在多条件查询页面中,不挑选任何字段、不输入任何关键词,那么,必将回来表中所有数据;假定用户在页面中,挑选了部分字段而且输入了部分查询关键词,那么,就按用户设置的条件进行查询。

提到这儿,不知道您是否已理解,其实,where 1=1的运用,不是什么高档的运用,也不是所谓的智能化的结构,仅仅只是为了满意多条件查询页面中不确定的各种因素而选用的一种结构一条正确能运转的动态SQL句子的一种办法。

where 1=0; 这个条件一直为false,成果不会回来任何数据,只要表结构,可用于快速建表

"SELECT * FROM strName WHERE 1 = 0"; 该select句子首要用于读取表的结构而不考虑表中的数据,这样节省了内存,由于能够不必保存成果集。  

create table newtable as select * from oldtable where 1=0;  创立一个新表,而新表的结构与查询的表的结构是相同的。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    【转】ORACLE近义词总结ITeye

    近义词,方针,数据库
  • 2
  • 3

    Mysql表结构、数据仿制ITeye

    仿制,结构,数据
  • 4
  • 5

    Hadoop 第一个实例ITeye

    一个,文件,输出
  • 6
  • 7

    IMPITeye

    一个,体系,数据
  • 8
  • 9
  • 10