#代码呈现 $a = '2017,欧美,动作'; # 如果参数是这样的一点问题没有 $where['category'] = ['like','%'.$a.'%']; $a = '2017,动作'; # 如果参数是这样的那就直接凉 因为like是全量匹配不会分开匹配 $where['category'] = ['like','%'.$a.'%'];
解决问题
我们发现了问题那么我们是不是就可以考虑一下
既然单个可以查询到 那么我们就把参数进行分割一下,分割为数组,然后进行拼接like查询
但是这个时候问题来了,很多人都是没有做过同一字段多个条件查询的
大多数的场景都是多个字段对应多个查询条件
这个时候或许就会想到用sql开始拼接 当然也可以实现,但是今天的主题不在这里
$a = '2017,欧美,动作'; $category = implode(',',$a); foreach($category as $k => $v) { $where['category'] = [ ['like','%'.$v.'%'] ]; }
$a = '2017,欧美,动作'; $category = implode(',',$a); $where = []; if(count($category) === 1){ $where['category'] = ['like','%'.$category.'%']; }else{ foreach($category as $k => $v) { $where['category'] = [ ['like','%'.$v.'%'] ]; } }