2016-08-05 39 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();