Zend框架查询where子句

时间:2013-07-24 04:55:32

标签: php mysql zend-framework

我有以下查询按车型号和类别名称

搜索表格
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 = $this->select()->setIntegrityCheck(false)
            ->from(array('car'=>$this->_name), array())
            ->joinLeft(array('cat'=>'categories'), 'cat.car_id=car.car_id', array())

然后在where子句

我喜欢这个

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

但输出如

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

我找不到用OR替换AND的方法..无论如何在zend_db中都这样做吗?

1 个答案:

答案 0 :(得分:1)

使用orWhere(示例#19)

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

来自文档:

  

如果需要使用OR将术语组合在一起,请使用orWhere()方法。此方法的使用方法与where()方法相同,只是指定的术语以OR开头,而不是AND。

相关问题