0

我的查询是这样的:

$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 =?1 如果 c.allcenters =? 0 以显示查询在 whereIn clouse 中。如果我写了或在 Where 之后在哪里关闭这 3 并且在此之后在哪里不起作用请帮助 :)

4

1 回答 1

0

我没有完全理解这个问题,但我熟悉复杂的 orWhere/andWhere 子句。您必须在条件如下的地方使用组合:

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

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

于 2012-11-19T18:12:55.380 回答