2017-03-03 143 views
0

我們能有一個開關罩查詢更Yii2 ActiveQuery方式比低於核心SQL?開關的情況下

$comboGraph = \Yii::$app->db->createCommand('select class , count(*) registered, '. 
    'sum(case when payment_status = \'1\' then 1 else 0 end) paid, '. 
    'sum(case when payment_status = \'0\' then 1 else 0 end) unpaid '. 
    'from students group by class ORDER BY FIELD(class,\'V\',\'VI\',\'VII\')') 
    ->queryAll(); 

我得到的結果,即使我用上面的查詢,但我想我的東西更Yii2具體。那麼有什麼建議?

回答

0

使用createCommand的是Yii2投訴。(和目前有沒有何時..報表,這些statementes由扁平SQL指令管理管理時的具體功能)

但可能是你想使用查詢生成器和相關功能.. http://www.yiiframework.com/doc-2.0/guide-db-query-builder.html

$comboGraph = (new \yii\db\Query()) 
->select("class 
     , count(*) registered 
     , sum(case when payment_status = '1' then 1 else 0 end) paid 
     , sum(case when payment_status = '0' then 1 else 0 end) unpaid") 
->from('students') 
->groupBy('class') 
->orderBy("FIELD(class,'V','VI','VII')") 
->all(); 

您可以使用單引號和雙引號的正確組合爲更好的閱讀