2008-09-17 51 views
0

我試圖用Zend_Db_Select對象編寫看起來有點像這樣的選擇查詢:Zend框架選擇運算符優先級

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

然而,使用其中()和orWhere(),這似乎是不可能的組合時,使用如上所述的條件分組。

是否有Zend框架的任何原生的方式來實現上述(無需編寫實際的查詢?)

回答

2

the manual(例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); 

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); 

我希望幫助。花了我一些鬼混讓字符串正常工作。

乾杯。

+0

感謝您的回覆,我很感激。 – 2009-04-08 05:51:11