我有以下查询按车型号和类别名称
搜索表格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中都这样做吗?
答案 0 :(得分:1)
使用orWhere(示例#19)
$sql->where('car.model_no LIKE ?', '%'.$query['search'].'%')->orWhere('cat.name LIKE ?', '%'.$query['search'].'%')
来自文档:
如果需要使用OR将术语组合在一起,请使用orWhere()方法。此方法的使用方法与where()方法相同,只是指定的术语以OR开头,而不是AND。