0

Zend_Db_Selectを使用して、次のような選択クエリを作成しようとしています。

SELECT * FROM bar WHERE a = 1 AND (b = 2 OR b = 3)

ただし、where()とorWhere()を組み合わせて使用​​する場合、上記のような条件グループ化は使用できないようです。

(実際のクエリを記述せずに)上記を実現するためのZend Frameworkのネイティブな方法はありますか?

4

2 に答える 2

2

マニュアルより(例 11.61. ブール式の括弧の例)


// Build this query:
//   SELECT product_id, product_name, price
//   FROM "products"
//   WHERE (price < 100.00 OR price > 500.00)
//     AND (product_name = 'Apple')

$minimumPrice = 100;
$maximumPrice = 500;
$prod = 'Apple';

$select = $db->select()
             ->from('products',
                    array('product_id', 'product_name', 'price'))
             ->where("price < $minimumPrice OR price > $maximumPrice")
             ->where('product_name = ?', $prod);

于 2008-09-17T07:43:00.227 に答える
0

上記のリファレンスは素晴らしいですが、弦で遊んでいる場合はどうでしょうか?

これは、文字列を使用した上記の例です...

// Build this query:
//   SELECT product_id, product_name, price
//   FROM "products"
//   WHERE (product_name = 'Bananas' OR product_name = 'Apples')
//     AND (price = 100)

$name1 = 'Bananas';

$name2 = 'Apples';

$price = 100;

$select = $db->select()

->from('products',
                    array('product_id', 'product_name', 'price'))

->where("product_name = '" . $name1 . "' OR product_name = '" . $name2 . "'")

->where("price=?", $price);

それが役立つことを願っています。文字列が正しく機能するようにするために、いじくり回しました。

乾杯。

于 2009-04-07T19:33:23.013 に答える