2016-09-18 46 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