ORing在mysql中的条件

时间:2011-02-02 10:19:14

标签: mysql

SELECT * FROM   ptsurvey.survey    s
    WHERE (s.companyid = 1 AND s.groupid = 34   AND s.status=1  AND s.creatoruid =286)
      OR
        (AND s.groupid = 34  AND s.status=2 AND s.status = 1));

我想在mysql中检查这样的情况。此查询无效。

2 个答案:

答案 0 :(得分:1)

摆脱额外的“AND”并关闭paren ......

SELECT * 
   FROM   
      ptsurvey.survey s
   WHERE 
         (     s.companyid = 1 
           AND s.groupid = 34   
           AND s.status = 1  
           AND s.creatoruid = 286 )
      OR 
         (     s.groupid = 34  
           AND s.status=2 
           AND s.status = 1);

此外,你的第二个子句部分(OR)方面,你正在测试两个s.Status = 2 AND s.Status = 1这将永远不会是真的......我认为你的意思是只测试一个状态对于这个元素。

答案 1 :(得分:0)

在SQL中,您需要在打开时关闭尽可能多的括号(不要少,不要多)。