web-dev-qa-db-fra.com

comment utiliser la condition non nulle dans YII2

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,
       ]);
21
Vikram Pote

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 .

51
Oldskool

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 .

11
arogachev
->where(['IS NOT', 'column', null]);

obtenir 

WHERE column IS NOT NULL

5
mariovials
    $items = BadOffer::find()->where(['OR',
                                               ['IS', 'moderator_id', (new Expression('Null'))],
                                               ['moderator_id' => $user->id],
    ]);
4
Mirocow

Comment sélectionner des colonnes non vides dans MySQL?

utiliserLONGUEUR:

SELECT col1
FROM table
WHERE LENGTH(col1) > 0

Yii2: 

->andWhere(['>', 'LENGTH(col1)', 0])
1
sj59

En Yii2, vous pouvez utiliser comme ci-dessous

1) ->andWhere(['NOT', ['city' => null]])
2) ->andWhere(['<>', ['city' => null]])
3) ->andWhere('city IS NOT NULL')
1
ashokkumarjuly

utilisez ->andWhere(['not', ['State' => null]]) ou ->andWhere(['is not', 'State', null]);

Ne pas utiliser:

  1. andFilterWhere, car la null fera en sorte que ce filtre soit ignoré
  2. ->andWhere(['<>', 'State', null]) comme il forme une requête AND State <> null
0
Stephen Tang