ThinkPHP6模型中多组条件逻辑或Or查询的使用

直接进入正题,如我们的查询条件是这样的:

(age > 20 and job_id = 3) or (sex = 1 and age < 20)

上面两组数据之间是 Or 的关系。

可使用两个闭包进行查询,代码如下:

php 复制代码
$map1 = [
            'age'  => 30,
            'sex'       => $id,
        ];
        $map2 = [
            'age'   => 1,
            'sex'     => $id,
        ];

        try{
            $lists= Orders::where(function($query) use($map1){
                $query->where($map1);
            })
                ->whereOr(function ($query) use ($map2){
                    $query->where($map2);
                })
                ->select();
        }catch (\Exception $e){
            echo $e->getMessage();
            return [];
        }

两份个条件组都要放到闭包里,否则会会变成: c1 and c2 or(c3 and c4);

相关推荐
bing.shao4 分钟前
如何降低redis哈希值冲突概率
数据库·redis·哈希算法
ckm紫韵6 分钟前
redis查询速度快的原因?
数据库·redis·缓存
su3177 分钟前
rap2部署
linux·运维·服务器
wheeldown22 分钟前
【Linux】Linux 地址空间 + 页表映射的概念解析
java·linux·jvm
yookay zhang23 分钟前
达梦数据复制软件DMDRS
数据库
陌路2029 分钟前
操作系统(11)进程描述与控制--5种IO状态(1)
linux·ubuntu
skywalk816332 分钟前
阿里云服务器FreeBSD新系统从登录、配置到升级:从14.1升级到FreeBSD 14.3 Release
linux·服务器·阿里云·freebsd
草莓熊Lotso35 分钟前
Linux 基础开发工具入门:软件包管理器的全方位实操指南
linux·运维·服务器·c++·人工智能·网络协议·rpc
拾忆,想起42 分钟前
TCP滑动窗口:网络世界的“智能流量阀门”
java·网络·数据库·网络协议·tcp/ip·php·哈希算法
懒羊羊不懒@1 小时前
【MySQL | 基础】概念
数据库·mysql