如何在ActiveQuery中使用where()条件与min()条件

问题描述:

我正在将此查询修改为Yii2 ActiveRecord如何在ActiveQuery中使用where()条件与min()条件

$query = "SELECT min(sorting_value) as sorting_value FROM table WHERE sorting_value>'$variable'" 

据我已经做到了这一点:

$queryValue = Mymodel::find()->min('sorting_value')->where(['sorting_value' > $sort1]); 

而且其显示的错误:

Call to a member function where() on a non-object

我怎样才能解决这个问题。我不能使用min()函数的条件。

由于min()不会返回ActiveQuery对象,你只需要使用where()前:

$queryValue = Mymodel::find()->where(['>', 'sorting_value', $sort1])->min('sorting_value'); 
+0

我用 '$ queryValue =为MyModel ::发现() - >选择( 'sorting_value') - >其中('sorting_value'>':sort1',[':sort1'=> $ sort1]) - > min('sorting_value');' 但是现在我得到这个错误: ** Exception(Database Exception)'yii \ db \ Exception'消息'SQLSTATE [IMSSP]:试图绑定参数号0. SQL Server最多支持2100个参数。 正在执行的SQL是:SELECT MIN(sorting_value)FROM [visit_planner] WHERE 1'** – Rabib 2015-02-24 13:22:30

+0

未检查条件,答案已更新。 – soju 2015-02-24 13:29:01

+0

非常感谢!有用! – Rabib 2015-02-24 13:33:03