如何在Zend Framework 2中组合where语句

时间:2013-04-08 08:59:35

标签: sql zend-framework2

这可能是一个愚蠢的问题,但我找不到任何答案。

我有一个简单的查询,比如'SELECT * FROM table WHERE(x = a AND y = b)OR z = c',我只是无法找到如何在ZF2中实现它。

我在Predicates和Where对象上找到了很多信息,但是我找不到如何将这些信息组合成一个由AND和OR组成的查询。

如果有人能指出我正确的方向,我真的很感激。

1 个答案:

答案 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);
相关问题