我试图从MySQL的问题表中获取一些行,如下所示:

SELECT *
FROM raise_question
where  documentID = '1'
   and delReq != 1 OR delReq IS NULL


但是,某些行具有不同的documentID。 (请看图片)。这是一种正确的方法(使用HAVING而不是AND)返回我想要的结果(因为它仅包含特定的documentID):

SELECT *
FROM raise_question
where  documentID = '1'
having delReq != 1 OR delReq IS NULL


使用AND查询返回:
mysql - MySQL通过where和and条件过滤结果-LMLPHP

使用“我想要”后的预期结果(仅包含一个documentID)是这样的:
mysql - MySQL通过where和and条件过滤结果-LMLPHP

最佳答案

您的WHERE转换为

where  (documentID = '1'
   and delReq != 1) OR delReq IS NULL


,因为AND的优先级高于OR
在您的OR语句中放入括号。

where  documentID = '1'
   and (delReq <> 1 OR delReq IS NULL)

08-28 02:12