ThinkPHP6多条件搜索查询,表达式查询 FIND_IN_SET查询
发表于:2022-01-02 12:00:25浏览:5922次
最近做项目的时候使用到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(); 推荐文章
- 价税合计、销项税额、发票金额 三者关系是?
- 最美的国产操作系统:深度操作系统 deepin 20.5 发布
- JavaScript实现json数据深拷贝的几种方法
- 开源的 OA 办公系统 —— 勾股 OA3.7.22 新版发布
- 宝塔Linux面板安装Composer依赖管理工具与PHP依赖包的方法
- 四行JavaScript代码实现禁止复制网站内容
- thinkphp6 leftjoin联表查询时,子表有多条记录去重后获取子表的最新记录查询方法
- 微软Edge浏览器在100版本里程碑之前的最后一个稳定版Edge99发布
- JavaScript 比较变量相等的奇怪现象 记录一下
- PHP实现今天、昨天 、本周、上周、本月、上月、本季度等方法

