2013-07-24 136 views
0

我搜索的车型号和类别名称表的Zend框架查询的WHERE子句

SELECT * FROM CARS as car 
LEFT JOIN CATEGORIES as cat 
ON cat.car_id = car.car_id 
WHERE (car.model_no LIKE '%GT V8%') OR (cat.name LIKE '%GT V8%') 

我使用Zend框架,所以我有这样的查询在我的模型至今下面的查询

在我做这样的

$sql->where('car.model_no LIKE ?', '%'.$query['search'].'%') 
    ->where('cat.name LIKE ?', '%'.$query['search'].'%') 
where子句

$sql = $this->select()->setIntegrityCheck(false) 
      ->from(array('car'=>$this->_name), array()) 
      ->joinLeft(array('cat'=>'categories'), 'cat.car_id=car.car_id', array()) 

然后

但像

WHERE (car.model_no LIKE '%GT V8%') AND (cat.name LIKE '%GT V8%') 

该输出我无法找到一个方法来代替,并用OR ..反正有做,在Zend_Db的?

回答

1

使用orWhere(实例#19)

$sql->where('car.model_no LIKE ?', '%'.$query['search'].'%')->orWhere('cat.name LIKE ?', '%'.$query['search'].'%') 

从文档:

如果需要使用共同或条款相结合,使用orWhere()方法。该方法与where()方法的使用方式相同,除了指定的术语之前是OR,而不是AND之外。

+0

哇我在他们的doc中找不到那个哈哈:)谢谢很多人:) – zaw