• ADADADADAD

    mysql中为什么要用where 1=1[ mysql数据库 ]

    mysql数据库 时间:2024-11-26 22:15:25

    作者:文/会员上传

    简介:

    where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句,1=1 是永恒成立的,意思无条件的,也就是说在SQL语句中有没有这个1=1都可以。如:web界面查询用

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句,1=1 是永恒成立的,意思无条件的,也就是说在SQL语句中有没有这个1=1都可以。

    如:web界面查询用户的信息,where默认为1=1,这样用户即使不选择任何条件,sql查询也不会出错。如果用户选择了姓名,那么where变成了where 1=1 and 姓名='用户输入的姓名',如果还选择了其他的条件,就不断在where 条件后追加 and语句就行了。

    如果不用1=1的话,每加一个条件,都要判断前面有没有where 条件,如果没有就写where ...,有就写and语句,因此此时用1=1可以简化了应用程序的复杂度。

    例如为不定数量的查询条件,我们在后台写查询的时候,类似于这样的语句 string sql ="select * from table where"

    if(starttime!=null){

    sql =sql+" starttime="+starttime

    }

    if(endtime !=null){

    sql =sql+"and endtime ="+endtime

    }

    这时我们的查询语句就是 select * from table where starttime =2015-04-05 andendtime = 2015-04-07,查询语句正确

    但是如果条件都不满足的话,语句就变成了select * from table where ,这时候查询就会报错,

    加上1=1的时候

    string sql ="select * from table where 1=1",

    if(starttime!=null){

    sql =sql+" and starttime="+starttime

    }

    if(endtime !=null){

    sql =sql+"andendtime ="+endtime

    }

    当两个条件成立的时候select * from table where 1=1 andstarttime =2015-04-05 andendtime = 2015-04-07, 语句正确

    当两个条件不满足时select * from table where 1=1 ,语句正确,会返回table表的所有数据

    mysql中为什么要用where 1=1.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlwhere