Yii Query Builder多个where子句

时间:2013-09-07 00:43:22

标签: yii query-builder

我在我的堆栈中注意到我的查询没有正确执行,因为我在querybuilder中有多个where子句。所以我查看了这篇文章Multiple call where in Yii Query builder

应用我读过的内容,但查询仍未将where语句组合在一起。我做错了什么?

            $command = Yii::app()->db->createCommand()
        ....
        ->where(array('in', 'u.id', $licenses), array('and', 'i.date_added > DATE_SUB(u.date_expired, INTERVAL  30 DAY)'));
        //->where(array('and', 'i.date_added > DATE_SUB(u.date_expired, INTERVAL  30 DAY)'));
        //->where(array('and', 'u.date_expired > CURDATE()'))
        ->group('u.id');

这是3个单独的陈述,但我在阅读时将它们合并,但结果仍然相同。只有1个where子句。

1 个答案:

答案 0 :(得分:5)

您应该使用andWhere方法。这个方法是放置AND关键字,所以你需要条件:

$command = Yii::app()->db->createCommand()
    ....
    ->where(array('in', 'u.id', $licenses));
    ->andWhere('i.date_added > DATE_SUB(u.date_expired, INTERVAL  30 DAY)');
    ->andWhere('u.date_expired > CURDATE()')
    ->group('u.id');