Подтвердить что ты не робот

Как использовать не нулевое условие в YII2

Привет, я хочу использовать в моем запросе yii2 не пустое значение, как я должен его использовать. Я не хочу, чтобы город и государство были нулевыми.

Мой запрос

$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,
       ]);
4b9b3361

Ответ 1

Вы можете использовать оператор not в сочетании с полями, которые не должны иметь значение null, чтобы сгенерировать оператор IS NOT NULL SQL. Вот так:

$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);

Также проверьте примеры в документации.

Ответ 2

Один из вариантов:

$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);

Проверьте официальные документы для where.

Ответ 3

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

Ответ 4

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

получить

WHERE column IS NOT NULL

Ответ 5

используйте ->andWhere(['not', ['State' => null]]) или ->andWhere(['is not', 'State', null]);

Не использовать:

  • andFilterWhere, так как null будет игнорировать этот фильтр
  • ->andWhere(['<>', 'State', null]), поскольку он формирует запрос AND State <> null

Ответ 6

В Yii2 вы можете использовать, как показано ниже

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