如何在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');
我用 '$ 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
未检查条件,答案已更新。 – soju 2015-02-24 13:29:01
非常感谢!有用! – Rabib 2015-02-24 13:33:03