Yii,与Db的条件只有一个巧合

时间:2014-07-28 00:25:17

标签: php yii

我需要从数据库中只获得一个巧合,我使用ClistView小部件来显示多个记录,但我需要它不显示重复。

现在,这是我的控制器/动作

public function actionIndex()
{
    $criteria = new CDbCriteria(array(
        'condition'=>'host=:id OR users_id=:id',
        'params'=>array('id'=>Yii::app()->user->getId()),
    ));

    $dataProvider=new CActiveDataProvider('sigstur', array(
        'criteria'=>$criteria
    ));

    $this->render('index',array(
        'dataProvider'=>$dataProvider,
    ));
}

有些记录在host和user_id列上具有相同的值但在其他列中具有不同的数据,这个条件我只是要求显示带有这些参数的记录,但是有太多的重复,如何避免这些重复?< / p>

1 个答案:

答案 0 :(得分:1)

我认为你需要解决方案:

1)使用GROUP BY

$criteria = new CDbCriteria(array(
    'condition' => 'host=:id OR users_id=:id',
    'params' => array('id'=>Yii::app()->user->getId()),
    'group ' => 'host, users_id',
));

2)使用DISTINCT

$criteria = new CDbCriteria(array(
    'condition' => 'host=:id OR users_id=:id',
    'params' => array('id'=>Yii::app()->user->getId()),
    'distinct' => true,
));

如果你解释一下你想避免什么样的重复,我可以在答案中添加更多细节。