使用Yii Active Record查找最多一列

Moe*_*ini 5 php mysql activerecord max yii

如何通过Yii Active Record找到数据库中一列的最大值?

我可以通过纯sql和createCommand方法来做到这一点,但我想通过Active Record和CDbCriteriaclass来做.有什么方法可以做到这一点?

Ste*_*305 12

您需要更改选择条件,如下所示.

$model = new Model;
$criteria=new CDbCriteria;
$criteria->select='max(column) AS maxColumn';
$row = $model->model()->find($criteria);
$somevariable = $row['maxColumn'];
Run Code Online (Sandbox Code Playgroud)

参考:

http://www.yiiframework.com/forum/index.php/topic/6730-how-can-i-use-max-in-find-method/page_ view _findpost_ p _80659


小智 6

这样可以避免创建不必要的临时对象:

$criteria = new CDbCriteria;
$criteria->select = 'max(column)';
// additional where conditions, if you so wish
$criteria->addColumnCondition(array('published' => 1));
$model = SomeModel::model();
$value = $model->commandBuilder->createFindCommand(
    $model->tableName(), $criteria)->queryScalar();
Run Code Online (Sandbox Code Playgroud)