0

次のコード:

    $collection->addAttributeToFilter(array(
                   array('attribute'=> 'someattribute','like' => 'value'),
                   array('attribute'=> 'otherattribute','like' => 'value'),

            ));

次のようなクエリを作成します。

         where  ( someattribute like 'value' OR otherattribute like 'value' )

しかし、この OR 条件に AND 条件を追加するにはどうすればよいでしょうか? 私はこのようなことを意味します:

        where ( (someattribute like 'value' AND someattribute  != 'another value')  OR otherattribute like 'value' )

コレクションの構築に addAttributeToFilter を複数回使用していますが、次のコードで上記の条件を追加しようとしました:

 $collection->getSelect->where( "(someattribute like 'value' AND someattribute  != 'another value')  OR otherattribute like 'value' )"  ) 

しかし、それは機能していません。addAttributeToFilter AS と同じコレクションの場所を使用することはできないのでしょうか?

よろしくお願いします

4

2 に答える 2

0

定義により :

->addAttributeToFilter(array(
               array('attribute'=> 'someattribute','like' => 'value'),
               array('attribute'=> 'otherattribute','like' => 'value'),

        )

これは、ANDを使用するためのOR選択です。

 ->addAttributeToFilter(array('attribute'=> 'someattribute','like' => 'value'))->addAttributeToFilter(array('attribute'=> 'otherattribute','like' => 'value'))
于 2013-03-18T08:30:38.517 に答える
0

わかりました、動作しています...追加した条件にエラーがありました

そのため、同じ magento コレクションで addAttributeToFilter と「where」を使用できます。とにかく、このソリューションは他の誰かにも役立つかもしれませんが、addAttributeToFilterのみを使用して上記のwhere条件を複製できるかどうか疑問に思っています...

于 2013-03-16T20:54:03.240 に答える