当前位置:  开发笔记 > 数据库 > 正文

为什么sql查询有"where 1 = 1"

如何解决《为什么sql查询有"where1=1"》经验,为你挑选了4个好方法。

我正在经历一些我正在维护的查询,并且程序员已经向我提出了"其中1 = 1"的查询,似乎总是评估为真.

这有好处吗?

重复: 为什么有人在SQL子句中使用WHERE 1 = 1 AND?

这个问题不是这个问题的答案.

WHERE子句:

select * from table where 1=1 and sStatus not in ('status1','status2','status3')

没有编程或如果声明推动和在那里.直接查询.

如果你可以取消关闭它,我想知道是否有目的,以便我可以重写并删除1 = 1,如果没有必要.



1> Tundey..:

是动态查询吗?有时,在基于可选参数构建动态查询时,这很有用.



2> sth..:

如果您自动希望为查询添加限制,则可以让您的工作更轻松:

string sql = "SELECT * FROM table WHERE 1=1";

if (someflag) {
  sql += " AND valid = 1";
}

if (someotherflag) {
  sql += " AND special = 1";
}

execute(sql);

没有WHERE 1 = 1你会在每种情况下检查它是否是你添加(然后使用WHERE ...)的第一个限制,或者你是否已经添加了一些其他限制(然后添加AND ...).



3> Paul Dixon..:

如果您正在动态构建where子句,则可能有点懒惰,并假设您添加的每个子句都可以以"AND"作为前缀,例如

$str="select foo from bar where 1=1";

if ($filter1)
{
    $str.=" and col1='frobozz'";
}



4> Jay S..:

当我在进行一些懒惰的编程时,我将它用于动态where子句,并且不想总是检查该子句是否为空以确定我现在是否需要在动态子句之间使用"AND".

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有