ThinkPHP6多条件搜索查询,表达式查询 FIND_IN_SET查询
发表于:2022-01-02 12:00:25浏览:4958次
最近做项目的时候使用到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(); 推荐文章
- windows11系统,小乌龟TortoiseGit、TortoiseSvn的红黄绿图标不见了的解决方案
- 云服务器挂载云盘,以天翼云为例子的挂载步骤
- 谷歌发布Flutter 3,增加对macOS和Linux 应用的支持
- API用户认证firebase/php-jwt,PHP使用jwt生成token
- 82个常规的前端JavaScript方法封装(71~82)
- PHP中,如果存在继承关系,其中子类和父类都定义了构造函数__construct(),怎么处理?
- ThinkPHP6+JS实现大文件分片上传,切片上传
- 移动端网页开发,viewport的深入理解和使用
- 分享十个免费优质音频素材网站
- 用phpqrcode轻松生成二维码,可自带logo

