首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Yii活动记录查找一列的最大值

问使用Yii活动记录查找一列的最大值
EN

Stack Overflow用户
提问于 2012-08-30 04:44:52
回答 6查看 23.1K关注 0票数 5

如何通过Yii活动记录找到数据库中某列的最大值?

我可以用纯sql和createCommand方法来做,但是我想用Active Record和CDbCriteria class.is来做,有没有办法呢?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-08-30 04:56:03

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

代码语言:javascript
复制
$model = new Model;
$criteria=new CDbCriteria;
$criteria->select='max(column) AS maxColumn';
$row = $model->model()->find($criteria);
$somevariable = $row['maxColumn'];

参考资料:

http://www.yiiframework.com/forum/index.php/topic/6730-how-can-i-use-max-in-find-method/page__findpost__80659

票数 12
EN

Stack Overflow用户

发布于 2013-08-08 12:12:16

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

代码语言:javascript
复制
$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();
票数 6
EN

Stack Overflow用户

发布于 2014-04-04 14:20:50

你可以通过DESC来限制结果和排序,例如

代码语言:javascript
复制
$criteria = new CDbCriteria;
$criteria->order = 'column DESC';
$row = Model::model()->find($criteria);
$somevariable = $row->column;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12186217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档