Zend Framework Выбрать приоритет оператора - PullRequest
0 голосов
/ 17 сентября 2008

Я пытаюсь использовать Zend_Db_Select, чтобы написать запрос на выборку, который выглядит примерно так:

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

Однако при использовании комбинации where () и orWhere () кажется невозможным использовать группировку условий, как указано выше.

Существуют ли в Zend Framework собственные способы достижения вышеуказанного (без написания фактического запроса?)

Ответы [ 2 ]

2 голосов
/ 17 сентября 2008

С руководство (Пример 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 голосов
/ 07 апреля 2009

Ссылка выше - это здорово, но что если вы играете со строками?

Вот пример, приведенный выше со строками ...

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

Надеюсь, это поможет. Заставил меня дурачиться, чтобы струны работали правильно.

Приветствие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...