我正在使用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)')
)
);
答案 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);