@H_502_7@
先看数据,我们需要使用2017,欧美,动作 这样的条件进行查询
$where['category'] = ['like',"%".$category."%"];
我们的 2017,动作 这个是可以变为 2017,动作 或者 动作,2017,欧美等等
但是实际上会发现使用like查询只有第一种情况可以查到 或者只有 单个的时候才可以查到
这个时候过来就会反映过来一个问题那就是like查询是只可以正序查询 不可以倒叙查询
也就是说参数为 2017,动作 可以匹配 2017,动作 但是匹配不出来 动作,2017
#代码呈现
$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,$a);
$where = [];
if(count($category) === 1){
$where['category'] = ['like','%'.$category.'%'];
}else{
foreach($category as $k => $v) {
$where['category'] = [
['like','%'.$v.'%']
];
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。