yii2 活动记录 whereNot
yii2 AcrtiveRecord whereNot
我有一个以下 sql 查询,我想 "build" 使用 Yii2 的 ORM:
SELECT * FROM table WHERE [some conditions] AND (col1 <> 0 OR col2 <> 0)
所以我想排除 col1 和 col2 等于 0 的所有结果,但我不想使用 sql EXCEPT
命令执行此操作。
SQL 应该是正确的,但我现在的问题是如何使用 yii2 ORM 构建它。
使用此代码:
Model::find()->where(['condition' => 1])
->andWhere(['condition2' => 20])
->andWhere(['not', ['col1' => 0]])
->andWhere(['not', ['col2' => 0]])
->all();
您需要在一个数组中使用条件键 'OR'
Model::find()
->where(['condition' => 1])
->andWhere([
'OR',
['!=', 'col1', 'val1'],
['!=', 'col2', 'val2'],
])
->all();
我有一个以下 sql 查询,我想 "build" 使用 Yii2 的 ORM:
SELECT * FROM table WHERE [some conditions] AND (col1 <> 0 OR col2 <> 0)
所以我想排除 col1 和 col2 等于 0 的所有结果,但我不想使用 sql EXCEPT
命令执行此操作。
SQL 应该是正确的,但我现在的问题是如何使用 yii2 ORM 构建它。
使用此代码:
Model::find()->where(['condition' => 1])
->andWhere(['condition2' => 20])
->andWhere(['not', ['col1' => 0]])
->andWhere(['not', ['col2' => 0]])
->all();
您需要在一个数组中使用条件键 'OR'
Model::find()
->where(['condition' => 1])
->andWhere([
'OR',
['!=', 'col1', 'val1'],
['!=', 'col2', 'val2'],
])
->all();