簡體   English   中英

Cakephp模型找到多個“不喜歡”

[英]Cakephp model find multiple 'not like'

我的數據庫中的VARCHAR字段具有逗號分隔的標簽列表。

我有一個要排除的值列表,但遇到了麻煩。

這就是我正在嘗試的...

$result = $this->Tags->find(
  'all',
  'conditions'=>array(
      'fieldName NOT LIKE'=>'%tag1%',
      'fieldName NOT LIKE'=>'%tag2%'
  )
);

這僅在條件下的第一行有效。

也嘗試過...

$result = $this->Tags->find(
  'all',
  'conditions'=>array(
      'NOT'=>array(
          'fieldName LIKE'=>'%tag1%',
          'fieldName LIKE'=>'%tag2%'
      (
  )
);

我一直在看Cake文檔,但是還沒有找到它。 謝謝。

這里有幾個問題。 首先,語法不正確。 我認為這只是您輸入問題時所犯的錯誤。

第二個問題更難發現。 如果您在數組中包含密鑰

'fieldName NOT LIKE' 

它會多次覆蓋自身。

為了防止這種情況,您必須將其包裝在數組中:

$result = $this->Tags->find('all',array(
    'conditions'=>array(
        array('fieldName NOT LIKE'=>'%tag1%'),
        array('fieldName NOT LIKE'=>'%tag2%')
)));

另一種選擇是按如下方式編寫查詢:

$result = $this->Tags->find('all',array(
    'conditions'=>array(
        'fieldName NOT REGEXP'=>'tag1|tag2',
)));

我看你的語法是不正確的,也許你忘了'all'之后的數組,

像這樣,

$result = $this->Tags->find('all',array(
    'conditions'=> array( 'fieldName NOT LIKE' =>'%tag1%',
    'fieldName NOT LIKE'=>'%tag2%')
 ));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM