web-dev-qa-db-ja.com

YII2で非ヌル条件を使用する方法

こんにちは、yii2クエリでnot null条件を使用する方法市と州がnullにならないようにします。

私のクエリは

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

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

documentation の例を確認してください。

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

get

WHERE column IS NOT NULL

11
mariovials

オプションの1つは次のとおりです。

$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 の公式ドキュメントを確認してください。

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

MySQLで空でない列を選択する方法は?

[〜#〜] length [〜#〜]を使用します。

SELECT col1
FROM table
WHERE LENGTH(col1) > 0

Yii2:

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

->andWhere(['not', ['State' => null]])または->andWhere(['is not', 'State', null]);を使用します

使用しないでください:

  1. andFilterWhereは、nullによりこのフィルターが無視されるため
  2. ->andWhere(['<>', 'State', null])クエリを形成するAND State <> null
1
Stephen Tang

Yii2では、次のように使用できます

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