首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend-framework DB: OR代替AND运算符

Zend-framework DB: OR代替AND运算符
EN

Stack Overflow用户
提问于 2010-08-21 15:40:03
回答 3查看 21.1K关注 0票数 12

有这样的zend查询:

代码语言:javascript
复制
$select = $this->_table
               ->select()
               ->where('title LIKE  ?', '%'.$searchWord.'%')
               ->where('description LIKE  ?', '%'.$searchWord.'%')
               ->where('verified=1 AND activated=1');

换句话说,它看起来是这样的:

代码语言:javascript
复制
SELECT `some_table`.* FROM `some_table` WHERE (title LIKE '%nice house%') AND (description LIKE '%nice house%') AND (verified=1 AND activated=1)

如果我有一对情侣和句子,zend通过和操作符将它连接起来。如何将其与OR运算符连接?因为我需要:

代码语言:javascript
复制
...(title LIKE '%nice house%') OR (description LIKE '%nice house%')...

您的帮助我们将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-21 15:45:30

代码语言:javascript
复制
$this->_table->select()->orWhere($condition);

为了构建更复杂的查询(例如,子条件),您可能必须使用$this->table->getAdapter()->quoteInto()并手动编写SELECT。

票数 26
EN

Stack Overflow用户

发布于 2016-05-28 15:10:31

这里的其他答案都不起作用了,当前的解决方案是在where子句中调用nest()和unnest():

代码语言:javascript
复制
$select->where
    ->nest()
        ->equalTo('column1', 1)
        ->or
        ->equalTo('column2', 2)
    ->unnest()
    ->and
    ->equalTo('column3', 3);
票数 4
EN

Stack Overflow用户

发布于 2014-01-31 14:29:21

我已经实现了你的zend查询

代码语言:javascript
复制
$select = $this->_table
               ->select()
               ->where('title LIKE  ?', '%'.$searchWord.'%')
               ->ORwhere('description LIKE  ?', '%'.$searchWord.'%')
               ->where('verified=1 AND activated=1');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3536807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档