2016-11-11 6 views
0

このクエリは期待どおりに機能しません。何が起こるのだろうか?私はいくつかのバリエーションを試しましたが、あなたが見ることができるように、クエリは「数学」という単語のレコードを取得し、「奨学金」と「評価」のレコードを除外する必要があります。cakephp3の条件が2でないレコードを取得する

cakephp3でこれを動作させることはできません。私は言葉の評価や奨学金で記録を取得します。

$subjectMaths = $this->Students->Subjects->find('list') 
    ->select(['id', 'name']) 
    ->where([ 
     'Subjects.name not LIKE' => '%assessment%' , 
     'Subjects.name LIKE' => '%maths%', 
     'Subjects.name not LIKE' => '%scholarship%' 
    ]) 
    ->order(['Subjects.name' => 'asc']); 


$subjectMaths = $this->Students->Subjects->find('list') 
    ->select(['id', 'name']) 
    ->where([ 
     'Subjects.name LIKE' => '%maths%', 
     'OR'=> [ 
      ['Subjects.name not LIKE' => '%assessment%' ], 
      [ 'Subjects.name not LIKE' => '%scholarship%',] 
     ] 
    ]) 
    ->order(['Subjects.name' => 'asc']); 

答えて

0

ここでは、2つの同一の配列キーSubjects.name not LIKEがあります。第二は、あなたがAndWhere()

$subjectMaths = $this->Students->Subjects->find('list') 
    ->select(['id', 'name']) 
    ->where(['Subjects.name not LIKE' => '%assessment%']) 
    ->andWhere(['Subjects.name LIKE' => '%maths%']) 
    ->andWhere(['Subjects.name not LIKE' => '%scholarship%']) 
    ->order(['Subjects.name' => 'asc']); 
を使用するhavw最初

を上書き

関連する問題