2017-04-14 80 views
0

基於下面的代碼,我想更新所有在客戶狀態1,其中status = 2.但是,我想運行下面的代碼customer_id不在(1,3,5, 8)。Yii 2更新全部不在

$customerNotIn = array(1, 3, 5 ,8); 
Customer::updateAll(['status' => 1], 'status = 2'); 

我該如何做到這一點?

回答

2

條件可以在你放什麼在->where()的格式,所以你的情況應該是:

$customerNotIn = array(1, 3, 5 ,8); 
Customer::updateAll(['status' => 1], ['AND', 
    'status = 2', 
    ['NOT IN', 'status', $customerNotIn] 
]); 
+0

這是不正確的。這將變爲狀態1,而不是1,3,5,8。我想要的是將狀態更改爲2.但不在customer_id = 1,3,5,8 – CloudSeph

+0

您的意思是你需要兩個條件?我不明白。什麼樣的最終狀態應該是什麼以及在什麼條件下? – gmc

+0

是的。我需要兩個條件 – CloudSeph