mysql中的where条件

mysql中的where条件,mysql,Mysql,我想在mysql中检查这样的条件。此查询不起作用。在SQL中,您需要关闭尽可能多的括号(不能少,也不能多)。去掉多余的“和”,然后关闭括号 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

我想在mysql中检查这样的条件。此查询不起作用。

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

去掉多余的“和”,然后关闭括号

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));

此外,您的第二个子句部分(OR)侧,您正在测试s.Status=2和s.Status=1,这将永远不会为真。。。我想您的意思是只测试该元素的1个状态。

您应该使用
{}
工具栏按钮格式化源代码。这一次我是为你做的。“不工作”是你可能提供的最糟糕的信息,尤其是如果你从MySQL收到一条带有数字代码的精确错误消息。我关闭了我打开的所有大括号,但它仍然不工作。我认为查询是错误的。如果查询是错误的,并且它不工作,我的建议是修复代码,使其开始工作。@kiran:那为什么我看到的左括号比左括号多?我还想补充一点,WHERE子句的后半部分永远不会为真。实际上,如果creatoruid=database uid,我希望pic status 1、2、3,否则我希望pic status=1。。。任何解决方案
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);