如何在cakephp中使用IN查询来查找多个值

时间:2017-10-07 10:28:27

标签: php cakephp

我正在使用LIKE查询但是当specialist_id的订单更改时,它说没有找到记录, 如果specialist_id数组中有[1,2,3],那么所有具有三个专业的用户都应该在结果中而不管序列如何,序列数组可能有[3,2,1]或[2,1,3] ]但具有这三个专业的用户应该在结果中,这是我的代码LIKE查询:

$field = $this->User->find(
    'all', array(
        'conditions'=>array(
            'User.specialist_id LIKE' =>'%'.$value.'%',
            'User.role'=>'careproviderRole',
            'User.gender'=>$this->request->data['gender'])
    )
);

foreach ($field as $key => $value)
{
    $field[$key]['Specialist'] = $user;
}

我也试过FIND_IN_SET

$field = $this->User->find(
    'all', array(
        'conditions' => array(
            'User.role' => 'careproviderRole',
            'FIND_IN_SET(\''.$this->request->data['specialist_id'].'\', User.specialist_id)')
    )
);

1 个答案:

答案 0 :(得分:0)

当您使用带有掩码LIKE的{​​{1}}时,它会查找子字符串'some'的所有结果。

如果需要从表(1,2或3)获取一些特定的id,则使用sql operator '%some%'

示例:

IN

在您的代码中,它将是:

SELECT `specialist_id` FROM `User` WHERE `specialist_id` IN (1,2,3);