如何在Zend Table Select中添加复杂的where子句?

AD.*_*AD. 11 zend-framework zend-db-table zend-db

我在网上搜索过,找不到能给我展示一个好例子的东西.我的问题基本上是这样的:

我该如何转换:

SELECT*FROM表WHERE((a = 1 AND b = 2)OR(c = 3 OR c = 4))AND d = 5;

要Zend语法类似于:

$ this - > select() - > from($ this - > _ schema.'.'.$ this - > _ name) - > where('a =?','1');

那怎么办呢?

非常感谢提前.

Mar*_*ark 14

我遇到了类似的问题.请参阅此处答案中的代码示例:将WHERE子句与Zend_Db_Table_Abstract分组

所以你最终会得到类似的东西:

$db = $this->getAdapter();
$this->select()
     ->where('(' . $db->quoteInto('a = ?', 1) . ' AND ' . $db->quoteInto('b = ?', 2) . ') OR (' . $db->quoteInto('c = ?', 3) . ' OR ' . $db->quoteInto('c = ?', 4) . ')')
     ->where('d = ?', 5);
Run Code Online (Sandbox Code Playgroud)

哪个会给你:

SELECT `table_name`.* FROM `table_name` WHERE ((a = 1 AND b = 2) OR (c = 3 OR c = 4)) AND (d = 5)
Run Code Online (Sandbox Code Playgroud)