MICUU
心情
所有
图集
登录
搜索
原创
MySQL中查询2个以上的关键字的查询方法双关键字搜索多关键字查询
染恋桑年至久
发布于:2021-01-29
网站搜索是我们经常要用到的功能,如何优化我们的搜索功能,是每一个程序员的必经之路,这里分享了thinkphp中怎么搜索两个及以上关键字交集的方法实例以及原生sql搜索2个以上关键词的代码。 ``` //原生sql 合集查询 SELECT * FROM zhe_content WHERE title like '%composer%' UNION SELECT * FROM zhe_content WHERE title like '%包文件%' UNION SELECT * FROM zhe_content WHERE title like '%更新%'; SELECT * FROM zhe_content WHERE title like concat('%composer%') or title like concat('%包文件%') //交集查询 SELECT * FROM zhe_content WHERE title like concat('%composer%') and title like concat('%包文件%'); //合集查询 SELECT * FROM `zhe_content` WHERE ( `title` LIKE '%composer%' OR `title` LIKE '%composer%' ) AND `zhe_content`.`delete_time` IS NULL ORDER BY `id` DESC ``` 相信有了原生的sql,大家自己也会组装到框架里面使用了,这里我将我的方法分享出来吧。 ``` $keywords = \think\facade\Request::get("keywords","","trim"); //交集 并集 $arr = explode(" ",$keywords); $find_title = "`title`";//查询的字段 $sql = ''; foreach ( $arr as $key => $keywords){ if($key == 0){ $sql .= "{$find_title} LIKE '%{$keywords}%' "; }else{ $sql .= " AND {$find_title} LIKE '%{$keywords}%'"; } } $list = \app\common\model\Content::with("user") ->where($sql) ->order("id DESC") ->paginate([ 'query'=> $this->params, ]); ``` 以上是查询2个及2个以上关键词的交集,如果是并集,只需要把and改成or就可以了。
注:原创不易,转载请注明出处(
https://micuu.com/new/1366.html
),本站所有资源来源于网络收集,如有侵权请联系QQ245557979进行清除。
最后修改与 2022-02-22
上一篇:
系统更新日志2021年1.29
下一篇:
【更新】利用js将搜索结果标红的代码
留言反馈
请先登录
问题反馈渠道,如有软件无法下载或者其他问题可反馈。【由于某种原因,目前留言不展示】
用户需要登录后才能留言反馈
立即留言
珍藏视频
10分钟高效燃脂
30天高效瘦脸操
5分钟缓解颈椎操
友人
微博
全民K歌
唱吧
今日头条
悠悠网
科技小锅盖
彼岸桌面
阮一峰
laravel社区
V2ex
掘金
更多>