No conditions do cakephp você pode usar o “AND” da seguinte maneira:
$rows = $this->MODEL->find(‘all’, array( ‘conditions’ => array(‘columnA = 1’, ‘columnB = 2’)));
Esta busca acima seria:
SQL: select * from MODEL where columnA = 1 and columnB = 2 ;
No conditions do cakephp você pode usar o “OR” da seguinte maneira:
$rows = $this->MODEL->find(‘all’, array( ‘conditions’ => array(‘columnA = 1’,
array(‘OR’ => array(“columnB = 2”, “columnB =3”))));
Esta busca acima seria:
SQL: select * from MODEL where columnA = 1 and ((columnB = 2) or (columnB = 3) ) ;
Detalhe importante, caso o “OR” tenha colunas idênticas, é necessário sem ser por atribuição, veja os exemplos:
Exemplo colunas idênticas: array(‘OR’ => array(“columnB = 2”, “columnB =3”))
Exemplo colunas diferentes: array(‘OR’ => array(“columnB” => 2, “columnB” => 3))
Agora caso queira fazer um IN, você pode usar o próprio OR ou colocar diretamente o in:
Exemplo IN com OR: array(‘OR’ => array(“columnB” =>array(2,3)))
Exemplo IN sem OR: array(“columnB in (2,3)”) este é aplicado igual ao and.