这可能是一个愚蠢的问题,但我找不到任何答案。
我有一个简单的查询,比如'SELECT * FROM table WHERE(x = a AND y = b)OR z = c',我只是无法找到如何在ZF2中实现它。
我在Predicates和Where对象上找到了很多信息,但是我找不到如何将这些信息组合成一个由AND和OR组成的查询。
如果有人能指出我正确的方向,我真的很感激。
答案 0 :(得分:3)
如果要使用AND添加它们,可以使用数组将它们简单地传递给select对象,例如:
$select->where(array(
'type' => 'test,
'some_field' => '1'
));
如果您想要更复杂的Where查询,那么您可以使用Where对象来构建查询:
$where = new \Zend\Db\Sql\Where();
$where->addPredicate(
new \Zend\Db\Sql\Predicate\Like('some_field', '%'.$value.'%')
)
->OR->->equalTo('my_field', 'bob')
->AND->equalTo('my_field', 'hello');
$select->where($where);