这段代码无法正常工作,我想使用 between and 子句检查开始和结束周期之间的period_id,但无法做到这一点
$return = Yii::app()->db->createCommand()
->select('period_id')
->from('SCHOOL_PERIODS')
->where('school_id=:school_id', array(':school_id'=>$schoolId))
->andWhere('syear=:syear', array(':syear'=>$schoolYear))
->andWhere('ignore_scheduling IS NULL')
->andWhere('period_id>:start', array(':start' => $startPeriod))
->andWhere('period_id<:end', array(':end' => $maxPeriod))
->order('sort_order asc')
->queryAll();
return $return;
尝试像这样在尖括号前后放置一个空格
period_id > :start
如果这仍然不起作用,请删除两行
->andWhere('period_id>:start', array(':start' => $startPeriod))
->andWhere('period_id<:end', array(':end' => $maxPeriod))
然后改用以下内容
->andWhere('period_id > :start AND period_id < :end', array(':start' => $startPeriod',':end' => $maxPeriod))
如果随后要使用 HAVING,请在分组下方添加此行。这意味着您可以从已运行的另一个查询中使用值。
->having('period_id > :resultfromOtherQueryStart AND period_id:resultFromOtherQueryEnd',array(':resultFromOtherQuery'=>$otherQueryStart,':otherQueryEnd'=>$otherQueryEnd))