不能用cakephp3中的orwhere排除行

时间:2016-11-12 07:21:17

标签: cakephp cakephp-3.0

以下代码无法正常工作。我希望所有的名字都与科学有关,除了'科学评估'这样的名字我如何排除像'科学评估'这样的名字,并保留其他行的科学名称。我的主题名称没有'科学'的名称

$subjectScience = $this->Students->Subjects->find('list')
     ->select(['id', 'name'])
     ->where(['Subjects.name not LIKE'  => '%assessment%'])
     ->andWhere(['Subjects.name LIKE'  => '%physics%']) 
     ->orWhere(['Subjects.name LIKE'  => '%chemistry%']) 
     ->orWhere(['Subjects.name LIKE'  => '%biology%']) 
     ->orWhere(['Subjects.name LIKE'  => '%science%','Subjects.name not LIKE'  => '%assessment%'])    //doesnt work as i expect    
     ->order(['Subjects.name' => 'asc']);

1 个答案:

答案 0 :(得分:0)

如果您只想要特定的字符串,那么为什么不使用赋值运算符。所以尝试使用:

'Subjects.name'  => 'science'

而不是:

'Subjects.name LIKE'  => '%science%'