wake-up-neo.net

wie man in YII2 eine Nicht-Null-Bedingung verwendet

Hallo, ich möchte nicht Null-Bedingung in meiner Abfrage yii2 verwenden, wie sollte ich das verwenden ... Ich möchte keine Stadt und Zustand Null. 

Meine Frage ist

$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

Sie können den Operator not zusammen mit den Feldern verwenden, die nicht null sein dürfen, um eine IS NOT NULL-SQL-Anweisung zu generieren. So was:

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

Überprüfen Sie auch die Beispiele in der Dokumentation .

51
Oldskool

Eine der Optionen wird sein:

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

Überprüfen Sie die offiziellen Dokumente auf wo .

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

erhalten 

WHERE column IS NOT NULL

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

Wie wählt man nicht leere Spalten in MySQL aus?

benutzeL&AUML;NGE:

SELECT col1
FROM table
WHERE LENGTH(col1) > 0

Yii2: 

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

In Yii2 können Sie wie folgt verwenden

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

benutze ->andWhere(['not', ['State' => null]]) oder ->andWhere(['is not', 'State', null]);

Nicht verwenden:

  1. andFilterWhere, da die null diesen Filter ignoriert
  2. ->andWhere(['<>', 'State', null]) wie es die Abfrage bildet AND State <> null
0
Stephen Tang