2015-02-24 48 views
1

我正在將此查詢修改爲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()函數的條件。

回答

7

由於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