Bonjour, je souhaite utiliser la condition non nulle dans ma requête yii2. Comment utiliser cette .
Ma requête est
$query = new Query;
$query->select('ID, City,State,StudentName')
->from('student')
->where(['IsActive' => 1])
->orderBy(['Rand()' => SORT_DESC])
->limit(10);
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => false,
]);
Vous pouvez utiliser l'opérateur not
combiné aux champs qui ne doivent pas être nuls pour générer une instruction SQL IS NOT NULL
. Comme ça:
$query = new Query;
$query->select('ID, City,State,StudentName')
->from('student')
->where(['IsActive' => 1])
->andWhere(['not', ['City' => null]])
->andWhere(['not', ['State' => null]])
->orderBy(['Rand()' => SORT_DESC])
->limit(10);
Consultez également les exemples de la documentation .
Une des options sera:
$query = new Query;
$query->select('ID, City,State,StudentName')
->from('student')
->where(['IsActive' => 1])
->andWhere(['<>', 'City', null])
->andWhere(['<>', 'State', null])
->orderBy(['Rand()' => SORT_DESC])
->limit(10);
Vérifiez la documentation officielle pour où .
->where(['IS NOT', 'column', null]);
obtenir
WHERE column IS NOT NULL
$items = BadOffer::find()->where(['OR',
['IS', 'moderator_id', (new Expression('Null'))],
['moderator_id' => $user->id],
]);
Comment sélectionner des colonnes non vides dans MySQL?
utiliserLONGUEUR:
SELECT col1
FROM table
WHERE LENGTH(col1) > 0
Yii2:
->andWhere(['>', 'LENGTH(col1)', 0])
En Yii2, vous pouvez utiliser comme ci-dessous
1) ->andWhere(['NOT', ['city' => null]])
2) ->andWhere(['<>', ['city' => null]])
3) ->andWhere('city IS NOT NULL')
utilisez ->andWhere(['not', ['State' => null]])
ou ->andWhere(['is not', 'State', null]);
Ne pas utiliser:
andFilterWhere
, car la null
fera en sorte que ce filtre soit ignoré->andWhere(['<>', 'State', null])
comme il forme une requête AND State <> null