ThinkPHP6多条件搜索查询,表达式查询 FIND_IN_SET查询
发表于:2022-01-02 12:00:25浏览:5824次
最近做项目的时候使用到ThinkPHP6的多条件搜索查询,表达式查询以及FIND_IN_SET查询,这些平时用得比较少的查询方法每次都要去查找ThinkPHP6的使用文档,不方便,所以把关键代码整理一下放这里方便以后使用。
1、ThinkPHP6的多条件搜索 and 查询
$map = [];
//条件
$map[] = ['status', '=', 1];
$map[] = ['type', '=', $type];
$map[] = ['url', 'like', $url. '%'];
$map[] = ['date', 'between time', [$startTime, $endTime]];
$list = Db::name('message')
->where($map)
->order($order)
->paginate(['list_rows' => $rows, 'query' => $param])
->toArray();2、ThinkPHP6的多条件搜索 or 查询
$map1 = [];
$map2 = [];
//条件1
$map1[] = ['status', '=', 1];
$map1[] = ['type', '=', $type];
$map1[] = ['date', 'between time', [$startTime, $endTime]];
//条件2
$map2[] = ['status', '=', 0];
$map2[] = ['type', '=', $type];
$map2[] = ['date', '>', $endTime];
$map2[] = ['date', '<', $startTime];
$list = Db::name('Flow')
->field('id,name,check_type')
->whereOr([$map1,$map2])
->order('id desc')
->paginate(['list_rows' => $rows, 'query' => $param])
->toArray();3、ThinkPHP6的FIND_IN_SET查询
FIND_IN_SET是什么方法?用在哪些地方?举个例子来说:
有个文章表里面有个type字段,它存储的是文章类型,有 1头条、2推荐、3热点、4图文等等 。
现在有篇文章他既是头条,又是热点,还是图文,type中以 1,3,4 的格式存储。这就要我们的 find_in_set 出马的时候到了。
简单的FIND_IN_SET查询:
$list = Db::name('Flow')->whereRaw("FIND_IN_SET(3,type)")->select()->toArray();复杂的FIND_IN_SET查询,且接收变量的查询:
//变量
$type = 1;
$department =1;
//查询条件
$map1 = [];
$map2 = [];
$map1[] = ['status', '=', 1];
$map1[] = ['type', '=', $type];
$map1[] = ['department_ids', '=', ''];
$map2[] = ['status', '=', 1];
$map2[] = ['type', '=', $type];
$map2[] = ['', 'exp', Db::raw("FIND_IN_SET('{$department}',department_ids)")];
$list = Db::name('Flow')
->field('id,name,check_type')
->whereOr([$map1,$map2])
->order('id desc')
->paginate(['list_rows' => $rows, 'query' => $param])
->toArray(); 推荐文章
- thinkphp6将汉字转为拼音的功能实现
- Edge浏览器窗口关闭圆角效果的解决办法
- 82个常规的前端JavaScript方法封装(41~50)
- 焕然一新 新版 Vue3中文文档上线
- Markdown编辑器Editor.md,实现粘贴图片上传,拖拽文件上传
- PHP8.5将于2025年11月20日正式发布,还在用PHP 5.6的老版本用户该何去何从?
- CRM的基本功能模块是什么?如何判断企业是否需要CRM系统?
- 免费杀毒软件是火绒好还是360好?
- Xshell提示 “要继续使用此程序,您必须应用最新的更新或使用新版本”
- 谷歌发布全新操作系统chromeOS Flex首个稳定版,可用于 PC 和 Mac

