数据查询中可能会用到数据表中的多个字段去做匹配 可能会用到多个FIND_IN_SET 也可能需要拼接多个条件
$user_ids = [1,2,3]; //获取需要匹配的值
if ($user_ids ){
foreach ($user_ids as $val){
$map[] = " FIND_IN_SET($val,show_user_id) ";
}
}
$where['_string'] = implode(" OR ",$map);
# 预览sql效果:
WHERE
FIND_IN_SET('1', show_user_id)
OR FIND_IN_SET('2', show_user_id)
OR FIND_IN_SET(3, show_user_id)
但是如果我们想除了这个函数还有其他函数要使用的时候并且$where['_string']已经被使用的时候怎么拼接?
$where['_logic'] = 'or';//and 或者 OR 就是看你的需要
$map['_string'] = " !FIND_IN_SET(4,show_user_id) ";
$where['_complex'] = $map;
# 预览sql效果:
WHERE
FIND_IN_SET('1', show_user_id)
OR FIND_IN_SET('2', show_user_id)
OR FIND_IN_SET(3, show_user_id)
AND (
(
!FIND_IN_SET(4, show_user_id) //就是与FIND_IN_SET相反的意思
)
)
评论 (0)