2012-01-16 134 views
5

幾乎在每個維基中都有簡單的解釋。我被困在yii的CDbcriteria比較問題中。yii中的比較問題

只有精確「等於」匹配的解釋 :

select * from users where status ='active' 

這個比較說明:

$criteria->compare('status','active'); 

但我無法找到它與描述它的示例腳本基於操作員的搜索不等於以下查詢:

select * from users where status !='active' 

我該怎麼做?

+4

我已經登錄,只是爲了投票+1這個。不知道爲什麼人們對此表示不滿。 –

+0

@FelipeAlmeida,非常感謝 –

回答

5

嘗試這樣

$criteria->condition = " status<>'active'"; 
$criteria->compare('status',$this->status,true); 
4

$criteria->addNotInCondition('status', array('active'));

一些事情,如果count(array('active')) === 1將SQL status != 'active',否則status NOT IN ('active', 'smth else')

1

嘗試

$criteria->addCondition("NOT status = 'active'"); 
1

我有以下3康迪它的作品就像一個魅力:

$criteria->condition='employee_id<>:employee_id AND vehicle_id=:vehicle_id AND checked_in_on IS NULL'; 
      $criteria->params=array(':employee_id'=>Yii::app()->session['activity']->employee_id,':vehicle_id'=>$model->id); 
      $checkedOutVehicleBySomeoneElse = Activity::model()->find($criteria);