一:前言
最近做了一个对用户需要的查询的内容,进行分词匹配结果的业务。安利一个分词接口,免费又稳定的第三方接口,官网在这里: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(*)'];
转载:感谢您对梦屿千寻个人博客网站平台的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源梦屿千寻个人博客”。
很赞哦!()