在进行查询时,我是否有可能同时使用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 . "'
是否可以将这两个条款结合起来?如果我想使用employee_id_name
和resolved_date
进行查询...并且如果我还想使用其中任何一个进行查询...
更新
我希望能够同时使用employee_id_name
和resolved_date
,但也有时间我只想使用其中任何一个...现在我不知道我希望每次执行查询时都会使用AND
和OR
更改我的代码。
答案 0 :(得分:2)
除非您添加第3个参数以决定是否需要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 . "')
)
答案 1 :(得分:0)
当然,您可以加入 AND 和 OR 。
select 1
from table t
where a = b
and (b = c or b = d)
;
括号不是非常必要的。
如果您只是更改或使用和,您的选择是完全不同的结果集。所以你必须知道选择应该做什么。
在第一种情况下,您会找到名称匹配的所有记录或日期。在第二种情况下,您只能找到名称匹配的记录,并且在同一记录中也会找到日期。
表示:强> 如果日期有效,第一个查询还会查找名称不同的记录,因为只有一个子句必须匹配。在AND查询中,ALL子句必须在单个记录上匹配才能将其传递给结果集。