2016-09-18 1 views
0

Ich habe die folgende Abfrage, die AND-Status = 1 wird ignoriert, ich bekomme alle Zustände statt nur was gleich 1. Wo ist mein Fehler hier?MYSQL Ignoriert AND-Klausel in meiner Abfrage

$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

Alles, was ich Ihnen Klammern müssen erraten. – 1000111

+0

Was hat sich dazu dupliziert? Es ist eine völlig andere Abfrage mit einer völlig anderen Syntax. Die dort gepostete Lösung gilt nicht für mein Problem. – user3586610

Antwort

0

benötigen Sie Anfang und Ende des AND Verwendung von Klammern definieren

$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

Dies führt zu einem Syntaxfehler. Fehle ich etwas? – user3586610

Verwandte Themen