Yii2 NOT IN条件不起作用

时间:2016-06-01 10:29:02

标签: mysql activerecord yii2 yii2-active-records

我将此用于查询而不是:

 $usertypes=Usertype::find()->where(['not in ','user_type_id',['2,3,4']])->all();

错误:

Database Exception – yii\db\Exception

未定义的偏移量:1 无法准备SQL:SELECT * FROM usertype WHERE user_type_id NOT IN:qp0

还尝试将数组格式设为['2','3','4']但不起作用?问题是什么?

4 个答案:

答案 0 :(得分:12)

试试这个:

$usertypes=Usertype::find()
           ->where(['not in','user_type_id',[2,3,4]])
           ->all();

参考:http://www.bsourcecode.com/yiiframework2/select-query-model/#In-Condition

答案 1 :(得分:2)

可能会删除'not in '中的空格字符? $usertypes=Usertype::find()->where(['not in', 'user_type_id', ['2,3,4']])->all();

答案 2 :(得分:0)

尝试使用 - > andFilterWhere而不是where - > where

试试这个:

$usertypes=Usertype::find() ->andFilterWhere(['NOT IN','user_type_id',[2,3,4]]) ->all();

答案 3 :(得分:0)

您可以使用“非”字或“ <>”

if myNode does not contain(location) {
    // Do other stuff in here
}

或此

 $usertypes=Usertype::find()->where(['not',['user_type_id'=>['2,3,4']]])->all();