yii2 AcrtiveRecord где Not
У меня есть следующий SQL-запрос, который я хочу "построить" с ORM Yii2:
SELECT * FROM table WHERE [some conditions] AND (col1 <> 0 OR col2 <> 0)
Поэтому я хочу исключить все результаты, где col1 и col2 равны 0, но я не хочу делать это с помощью sql EXCEPT
команда.
SQL должен быть верным, но мой вопрос сейчас в том, как его построить с помощью ORM yii2.
2 ответа
Решение
Вам нужно использовать условие в одном массиве с ключом "ИЛИ"
Model::find()
->where(['condition' => 1])
->andWhere([
'OR',
['!=', 'col1', 'val1'],
['!=', 'col2', 'val2'],
])
->all();
Используйте этот код:
Model::find()->where(['condition' => 1])
->andWhere(['condition2' => 20])
->andWhere(['not', ['col1' => 0]])
->andWhere(['not', ['col2' => 0]])
->all();