2011-02-02 61 views
0
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中。此查詢不起作用。ORing在哪裏條件在mysql

+0

你應該用`{}`工具欄按鈕格式化源代碼。這次我爲你做了。 – 2011-02-02 10:21:48

+0

「不能正常工作」是您可以提供的更糟糕的信息,尤其是,如果你真的從數字代碼和所有的MySQL獲得準確的錯誤消息。 – 2011-02-02 10:24:10

回答

0

在SQL中,您需要關閉儘可能多的括號(不少於,不多於)。

1

甩掉多餘的 「AND」 和右括號的...

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和S。狀態= 1這永遠不會是真的......我想你的意思是隻有1個狀態才能被測試這個元素。