如何使用 %% 搜索通过包含多个值的数组查找字段


How to find fields by an array which contains multiple values by using like %% search

我正在尝试通过喜欢%%搜索获取与这些id(1,2,3(匹配的多个字段。我试图让它工作两个小时,但它没有奏效,尽管它看起来很简单。

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

我需要别人的帮助。

我建议你单独构建"条件"数组。例如:

$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));

很抱歉回复晚了,感谢您回答我的问题。只要我读了你的回答,尼克辛格发布的下水道是最有帮助的。但是,我想做的是和搜索。所以我像波纹管一样改进了答案。

$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));

再次,我非常感谢您的帮助。

请参阅 CakePHP 如何通过 ID 数组获取多行

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

只是一个猜测,但试试

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

还没有测试过,但这应该可以工作

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