2016-08-05 44 views
3
Customer::find()->where(['<>','customer_id', '7'])->all() 

目前上面的代碼可以讓我執行以找到所有的客戶,他們的客戶編號並非7.現在,我想找到所有我怎麼能由其中id = 5降序在警予2

其中CUSTOMER_ID不是爲了7通過客戶ID = 5遞減

我知道我可以在MySQL的使用做:

SELECT * FROM mydatabase.customer_id where customer_id <> 7 order by customer_id = 5 desc; 

但我怎麼能這樣做yii2

回答

1

您還可以使用活動記錄:

Customer::find()->where(['<>','customer_id', '7']) 
->orderBy([new \yii\db\Expression('FIELD (customer_id, 5) DESC')])->all(); 
+0

是的!正是我需要感謝你:) – CloudSeph

+0

@IvanCloud。介意upvoting的答案,所以它可以對其他人有用。 –

0

您可以簡單地使用:

$result = (new \yii\db\Query()) 
     ->select('*') 
     ->from('customer') 
     ->where(['<>','customer_id', '7']) 
     ->orderBy([new \yii\db\Expression('FIELD (customer_id, 5) DESC')]) 
     ->all();