当前位置:首页 > 网站建设

thinkphp用法之模糊查询

哈尔滨网站建设2020-04-14796人围观

哈尔滨网站建设thinkphp用法之模糊查询

最近做项目,在做搜索模块的时候,模糊查询肯定少不了。

今天就详细的看一下模糊查询:

$where['title'] = array('like','%'.$words.'%'); $where['title'] = array('like',array('%'.$words.'%','%'.$wordss.'%')); $where['title'] = array(array('like','%'.$words.'%'),array('like','%'.$wordss.'%'));

一、当个字段做模糊查询。

$words = "吃"; $where['title'] = array('like','%'.$words.'%'); $list = $TagDB->where($where)->select();

这样执行的Sql是:

SELECT * FROM `tp_keywords_sanqi` WHERE `title` LIKE '%吃%' 

这个可以查询多个字段:

$where['title'] = array('like','%'.$words.'%'); $where['description'] = array('like','%'.$words.'%'); $list = $TagDB->where($where)->select();

上面的坏处:很多时候,我们做的是标题 title的查询,而且查询的时候,要求包含 title 包含两个或者以上的词:

例如: 

要求一:查询标题包含 “作用” 或 “怎样” ;

$words = "怎样"; $wordss = "作用"; $where['title'] = array('like',array('%'.$words.'%','%'.$wordss.'%')); $list = $TagDB->where($where)->select();

执行的Sql是这样的:

SELECT * FROM `tp_keywords_sanqi` WHERE (`title` LIKE '%怎样%' OR `title` LIKE '%作用%') 

要求二:查询标题中同时包含 “作用” 和 ”怎样“ ;

$words = "怎样"; $wordss = "作用"; $where['title'] = array(array('like','%'.$words.'%'),array('like','%'.$wordss.'%')); $list = $TagDB->where($where)->select();

执行的sql是这样的:

SELECT * FROM `tp_keywords_sanqi` WHERE ( `title` LIKE '%怎样%' AND `title` LIKE '%作用%' ) 

当然啦!还可以自己写Sql来执行:

$sql = "SELECT * FROM `tp_keywords_sanqi` WHERE `title` LIKE '%什么%';"; $sql = "SELECT * FROM `tp_keywords_sanqi` WHERE (`title` LIKE '%什么%') OR (`title` LIKE '%吃%');"; $sql = "SELECT * FROM `tp_keywords_sanqi` WHERE (`title` LIKE '%什么%' AND `title` LIKE '%作用%')"; $list = M()->query($sql);

 具体示例:

复制代码
$words = "作用 功效"; $where = array(); $wordsArr = explode(' ',$words); $whereArr = array(); foreach($wordsArr as $k=>$v){ $arr = array(); if(!$v)unset($wordsArr[$k]); array_push($arr,'like'); array_push($arr,'%'.$v.'%'); array_push($whereArr,$arr);
} $where['title'] = $whereArr; $list = $TagDB->where($where)->select(); echo $TagDB->getLastSql();
复制代码

执行的Sql:

SELECT * FROM `tp_keywords_sanqi` WHERE ( `title` LIKE '%作用%' AND `title` LIKE '%功效%' ) 

目的达到!

 
  • 该资源有隐藏内容,查看需要登录,请先登录  立即登录

    版权声明:

    博主在此发文(包括但不限于汉字、拼音、拉丁字母)均为随意敲击键盘所出,用于检验本人电脑键盘录入、屏幕显示的机械、光电性能,并不代表本人局部或全部同意、支持或者反对观点

    如需要详查请直接与键盘生产厂商法人代表联系。挖井挑水无水表,不会网购无快递。

    文章内容除非注明原创,否则来源于互联网,不代表本人的任何立场;涉及到的软件来源于互联网,仅供个人下载使用,请勿用于商业用途,版权归软件开发者所有,下载后请于24小时内删除,请支持正版!

    因下载本站任何资源造成的损失,全部责任由使用者本人承担!

    如果你是版权方,认为本文内容对您的权益有所侵犯,请联系博主,待博主进行严格地审查和背景调查后,情况属实的将在三天内将本文删除或修正。

    博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高(其实是个菜B),不足和错误之处在所难免,希望大家能够批评指出。