2011-12-01 14 views
10

私はこのような検索クエリを持っています。Cakephpで等しくない演算子を使用する

$this->paginate('Article', array('Article.status !=' => 'Inactive', 'Article.user_id !=' => $blocked_ids, 'Article.tags LIKE' => "%" . trim($this->params['url']['tag']) . "%")) 

ここで、$ blocked_idsはIDの配列です。これは、私はそれが正常に動作します!=を削除エラー

SQL Error: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= ('170') 

をスローします。エラーなし

何か助けていただきありがとうございます。代わりに [MySQL Reference]NOT INを使用して

答えて

0

てみ:@Joshが示唆したように

$this->paginate('Article', array('Article.status !=' => 'Inactive', 'Article.user_id NOT IN' => $blocked_ids, 'Article.tags LIKE' => "%" . trim($this->params['url']['tag']) . "%")) 
+0

をINが動作していないようはありません。同じエラー。 –

2

これから撮影

$this->User->find('all', array(
    'conditions' => array(
     'NOT' => array(
      'User.id' => array(1, 2, 3) 
     ) 
    ) 
)); 

あなたのモデル関数でデータを取得しているときに処理されなければなりません。あなたはこのようなコードを使用することによって、それらを除外する必要があります。

'conditions' => array(
    'Article.status' => 'active', 
10
$this->paginate(
       'Article', 
       array (
        'Article.status <>' => 'Inactive', 
        'Article.user_id !=' => $blocked_ids, 
        'Article.tags LIKE' => "%" . trim($this->params['url']['tag']) . "%" 
        ) 
      ); 
関連する問題