这可能是一个愚蠢的问题,但我找不到任何答案。
我有一个简单的查询,例如“SELECT * FROM table WHERE (x=a AND y=b) OR z=c”,我只是不知道如何在 ZF2 中实现它。
我找到了很多关于 Predicates 和 Where 对象的信息,但我不知道如何将这些信息组合成一个由 AND 和 OR 组成的查询。
如果有人能指出我正确的方向,我将不胜感激。
这可能是一个愚蠢的问题,但我找不到任何答案。
我有一个简单的查询,例如“SELECT * FROM table WHERE (x=a AND y=b) OR z=c”,我只是不知道如何在 ZF2 中实现它。
我找到了很多关于 Predicates 和 Where 对象的信息,但我不知道如何将这些信息组合成一个由 AND 和 OR 组成的查询。
如果有人能指出我正确的方向,我将不胜感激。
如果你想使用 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);