Doctrine查询whereIn和orWhere

时间:2012-11-19 07:58:36

标签: mysql doctrine doctrine-1.2

我的疑问是:

$q = Doctrine_Query::create()           
       ->from('plans p')               
       ->whereIn('c.centerid',$centers)
       ->andWhere('p.agecategory = ?', $ageType)      
       ->andWhere('p.type = ?', '2')       
       ->andWhere('p.active = ?', '1')    
       ->leftJoin('p.plansCenters c');  
       return $q->execute();

我不会再添加一行:

orWhere('p.allcenters =?' , '1')

问题是这样的:   如果c.allcenters =,我不会删除这个inClouse? 1和oposit如果c.allcenters =? 0显示查询whit whereInclouse。如果我知道或者在WhereInIn clouse这个3之后并且在此之后不能工作请帮助:))

1 个答案:

答案 0 :(得分:0)

我没有完全理解这个问题,但我熟悉复杂的orWhere /和Where子句。你必须在条件喜欢的地方使用组合:

->where("q.column=? AND w.column=?", ...)
->orWhere("e.id=? AND r.name=?", ....)
->orWhere("t.id=? AND (y.id=? OR u.id=?)", ...)

我希望你理解这个想法,这是完全合法的方式。