-3

是否有可能我可以同时使用 AND/OR 运算符,或者在进行查询时只使用其中一个?

这是我的代码,如果我想使用employee_id_name和中的任何一个,我可以使用resolved_date

WHERE 
    employee_id_name = '" . $xid . "' 
    OR resolved_date = '" . $date . "'

如果我想同时使用这两种方法,我会使用以下方法:

WHERE 
    employee_id_name = '" . $xid . "' 
    AND resolved_date = '" . $date . "'

是否可以将这两个 where 子句结合起来?如果我想同时使用employee_id_nameresolved_date...进行查询,如果我还想使用其中任何一个进行查询...

更新

我希望能够同时使用两者employee_id_nameresolved_date但也有时间我只想使用它们中的任何一个......现在我不想在每次执行查询AND时都更改我的代码OR.

4

2 回答 2

2

AND除非添加第三个参数来决定是否需要,否则无法组合它OR。这里我使用$querycondition了 1 或 2。这当然不是好的 PHP 语法:我把它留给你

WHERE
  (1= $querycondition AND
        (employee_id_name = '" . $xid . "' OR resolved_date = '" . $date . "')
  )
  OR
  (2= $querycondition AND
        (employee_id_name = '" . $xid . "' AND resolved_date = '" . $date . "')
  )
于 2013-05-09T10:42:32.050 回答
0

当然你可以加入ANDOR

select 1
from table t
where a = b
and (b = c or b = d)
;

括号不是绝对必要的。

如果您只是更改或使用 and,您的选择是一个完全不同的结果集。所以你必须知道选择应该做什么。

在第一种情况下,您会找到名称与日期匹配的所有记录。在第二种情况下,您只能找到名称匹配的记录,并且在同一记录中还有日期。

意味着: 如果日期有效,则第一个查询还查找名称不同的记录,因为只有一个子句必须匹配。在 AND 查询中,所有子句必须匹配单个记录才能将其生成到结果集中。

于 2013-05-09T10:44:42.030 回答