1

それはばかげた質問かもしれませんが、私はそれに対する答えを見つけることができません。

「SELECT * FROM table WHERE (x=a AND y=b) OR z=c」のような単純なクエリがあり、ZF2 でそれを実装する方法がわかりません。

Predicates と Where オブジェクトに関する多くの情報を見つけましたが、それらの情報を AND と OR で構成されるクエリに結合する方法がわかりません。

誰かが私を正しい方向に向けることができれば、本当に感謝しています。

4

1 に答える 1

3

AND を使用してそれらを追加する場合は、配列を使用して選択オブジェクトに単純に渡すことができます。次に例を示します。

$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);
于 2013-04-08T09:48:39.917 に答える