您现在的位置是:网站首页> php专栏 扩展知识
tp5实现同一字段的多个模糊条件查询
亦然2019-10-31 16:50:10【扩展知识】人已围观
简介最近的业务中有用的对同一个字段,需要多个值进行模糊查询。实现一个动态生成条件的效果。
一:前言
最近做了一个对用户需要的查询的内容,进行分词匹配结果的业务。安利一个分词接口,免费又稳定的第三方接口,官网在这里:http://www.pullword.com/。
分词之后,需要实现一个字段,模糊匹配多个值。
$where['keyword'] = [['like', $keywords.'%'], ['like', $english.'%'], 'or'];
二:代码
因为我是需要动态生成查询条件,所以用循环来生成一个条件数组。如下:
$where['keyword'] = array('or'); foreach ($words as $value) { array_unshift( $where['keyword'], array('like', '%'.$value['t'].'%')); }
用到了array_unshift()函数,array_unshift()函数用于向反向插入新元素。新数组的值将被插入到数组的开头。
打印输出,结果是这样:

从其他地方看到还有原生拼接的方法,贴一下代码,感兴趣的可以试一试。
$sql = 'select count(*) from '.$item['table_name'].' where ';
foreach ($keyword as $value) {
$sql .= ' `question` like '.'"%'.$value.'%"'.' or';
}
$sql = substr($sql, 0, -2);
$sql.= ' and is_delete=0';
$item_total = Db::query($sql);
$data[$key]['total'] = $item_total[0]['count(*)'];
很赞哦!()