我正在经历一些我正在维护的查询,并且程序员已经向我提出了"其中1 = 1"的查询,似乎总是评估为真.
这有好处吗?
重复: 为什么有人在SQL子句中使用WHERE 1 = 1 AND?
这个问题不是这个问题的答案.
WHERE子句:
select * from table where 1=1 and sStatus not in ('status1','status2','status3')
Run Code Online (Sandbox Code Playgroud)
没有编程或如果声明推动和在那里.直接查询.
如果你可以取消关闭它,我想知道是否有目的,以便我可以重写并删除1 = 1,如果没有必要.
sth*_*sth 11
如果您自动希望为查询添加限制,则可以让您的工作更轻松:
string sql = "SELECT * FROM table WHERE 1=1";
if (someflag) {
sql += " AND valid = 1";
}
if (someotherflag) {
sql += " AND special = 1";
}
execute(sql);
Run Code Online (Sandbox Code Playgroud)
没有WHERE 1 = 1你会在每种情况下检查它是否是你添加(然后使用WHERE ...)的第一个限制,或者你是否已经添加了一些其他限制(然后添加AND ...).
Pau*_*xon 10
如果您正在动态构建where子句,则可能有点懒惰,并假设您添加的每个子句都可以以"AND"作为前缀,例如
$str="select foo from bar where 1=1";
if ($filter1)
{
$str.=" and col1='frobozz'";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41231 次 |
| 最近记录: |