当前位置:Gxlcms > PHP教程 > 有关zentaophp框架的一个sql语句方法

有关zentaophp框架的一个sql语句方法

时间:2021-07-01 10:21:17 帮助过:5人阅读

phpreturn $this->dao->select('id,amount,dept,signedBy,begin,end,bourse,openBank')->from(TABLE_CONTRACT)
            ->where('deleted')->eq(0)
            ->beginIF($mode=='bysearch')->andWhere('begin','between',$startDate,$endDate)
            ->orWhere('end')->between($startDate,$endDate)
            ->fi()
            ->beginIF($dept)
            ->andWhere('dept')->eq($dept)
            ->fi()
//            ->groupBy($groupBy)
            ->orderBy($orderBy)
            ->fetchAll();  

这段代码能够生成这样的sql

sqlSELECT id,amount,dept,signedBy,begin,end,bourse,openBank FROM `crm_contract` wHeRe deleted  = '0' AND dept  = '820011' AND begin  BETWEEN '2015-03-01' AND '2015-03-31'  OR end  BETWEEN '2015-03-01' AND '2015-03-31'   oRdEr bY `signedBy` desc,`amount` desc

对上面的orm语句如何书写才能形成下列的SQL语句

sqlid,amount,dept,signedBy,begin,end,bourse,openBank FROM `crm_contract` wHeRe deleted  = '0' AND dept  = '820011' AND (begin  BETWEEN '2015-03-01' AND '2015-03-31'  OR end  BETWEEN '2015-03-01' AND '2015-03-31' )  oRdEr bY `signedBy` desc,`amount` desc

简单说明就是在begin和end两个where条件外面加上括号该怎么处理?

回复内容:

phpreturn $this->dao->select('id,amount,dept,signedBy,begin,end,bourse,openBank')->from(TABLE_CONTRACT)
            ->where('deleted')->eq(0)
            ->beginIF($mode=='bysearch')->andWhere('begin','between',$startDate,$endDate)
            ->orWhere('end')->between($startDate,$endDate)
            ->fi()
            ->beginIF($dept)
            ->andWhere('dept')->eq($dept)
            ->fi()
//            ->groupBy($groupBy)
            ->orderBy($orderBy)
            ->fetchAll();  

这段代码能够生成这样的sql

sqlSELECT id,amount,dept,signedBy,begin,end,bourse,openBank FROM `crm_contract` wHeRe deleted  = '0' AND dept  = '820011' AND begin  BETWEEN '2015-03-01' AND '2015-03-31'  OR end  BETWEEN '2015-03-01' AND '2015-03-31'   oRdEr bY `signedBy` desc,`amount` desc

对上面的orm语句如何书写才能形成下列的SQL语句

sqlid,amount,dept,signedBy,begin,end,bourse,openBank FROM `crm_contract` wHeRe deleted  = '0' AND dept  = '820011' AND (begin  BETWEEN '2015-03-01' AND '2015-03-31'  OR end  BETWEEN '2015-03-01' AND '2015-03-31' )  oRdEr bY `signedBy` desc,`amount` desc

简单说明就是在begin和end两个where条件外面加上括号该怎么处理?

人气教程排行