您现在的位置是:网站首页> 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(*)']; 

很赞哦!()

相关文章

亦然

亦然(共32篇文章)

愿你我既可以朝九晚五,也可以浪迹天涯;愿你我既可以拈花把酒,也能围炉诗书茶。