如何使用类似%% search的数组查找包含多个值的字段

时间:2014-12-16 13:52:42

标签: php cakephp find

我试图通过Like %% search获得与那些id(1,2,3)匹配的多个字段。 我试着让它工作两个小时,但它看起来很简单但没有用。

$ids = array ('1','2','3');

$result = $this -> Model -> find ('all', array(
    'conditions' => array( 'Model.category LIKE' => '%'.$ids.'%')
));

我需要别人的帮助。

5 个答案:

答案 0 :(得分:1)

我建议你建立条件'阵列分开。例如:

$ids = array ('1','2','3');
$conditions = array();
foreach($ids as $id){
    $conditions['OR'][] = array( 'Model.category LIKE' => '%'.$id.'%')
}

$result = $this->Model->find('all', array('conditions'=>$conditions));

答案 1 :(得分:1)

很抱歉迟到的回复,谢谢你回答我的问题。只要我阅读了你的答案,尼克辛格发布的ansewer就是最有帮助的。但是,我想做的是AND搜索。所以我改进了下面的答案。

$ids = array ('1','2','3');
$conditions = array();
foreach($ids as $id){
    $conditions['AND'][] = array( 'Model.category LIKE' => '%'.$id.'%')
}

$result = $this->Model->find('all', array('conditions'=>$conditions));

同样,我非常感谢您的帮助。

答案 2 :(得分:0)

请参阅CakePHP how to get multiple rows by array of ID's

$this->YourModel->find('all', array(
    'conditions' => array(
        "YourModel.id" => array(1, 2, 3, 4)
    )
));

答案 3 :(得分:0)

只是一个猜测,但尝试像

'Model.category LIKE' => "%$ids%"

答案 4 :(得分:0)

没有测试过,但这应该有效

$ids = array(1, 2, 3);

$result = $this->Model->find('all', array(
    'conditions' => array('Model.category'=>$ids ')
        ));