2016-09-18 45 views
0

我有以下查詢,AND狀態= 1被忽略,我得到所有的狀態,而不是隻有等於1.我的錯誤在哪裏?MYSQL在我的查詢中忽略AND子句

$query = " 
       SELECT state, id, variable, name, {$columns->specific}, {$columns->allExcept}, {$columns->specificExclude}, {$columns->relationAllExcept}, repeatable 

       FROM #__epc_fieldsgroups 
       WHERE FIND_IN_SET({$relationRecordId}, {$columns->specific}) 

       OR {$columns->allExcept} != 0 
       AND FIND_IN_SET({$relationRecordId}, {$columns->allExcept}) = 0 

       AND state = 1 
       ORDER BY ordering 
      "; 
+1

所有我猜你需要括號。 – 1000111

+0

重複了什麼?它是一個完全不同的語法完全不同的查詢。發佈的解決方案對我的問題無效。 – user3586610

回答

0

你需要定義的開始和結束,並使用括號

$query = " 
       SELECT state, id, variable, name, {$columns->specific}, {$columns->allExcept}, {$columns->specificExclude}, {$columns->relationAllExcept}, repeatable 

       FROM #__epc_fieldsgroups 
       WHERE FIND_IN_SET({$relationRecordId}, {$columns->specific}) 

       OR {$columns->allExcept} != 0 
       AND {FIND_IN_SET({$relationRecordId}, {$columns->allExcept}) = 0} 

       AND {state = 1} 
       ORDER BY ordering 
      "; 
+0

這樣做會導致語法錯誤。我錯過了什麼嗎? – user3586610