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);

相关推荐
handler0117 分钟前
Linux: 基本指令知识点(2)
linux·服务器·c语言·c++·笔记·学习
maqr_11024 分钟前
MySQL数据库迁移到云端如何保障安全_数据加密与SSL连接配置
jvm·数据库·python
u01091476029 分钟前
MySQL如何限制触发器递归调用的深度_防止触发器死循环方法
jvm·数据库·python
Web极客码30 分钟前
深入了解WordPress网站访客意图
服务器·前端·wordpress
liuyukuan31 分钟前
如何在win11上打开 WSL2(Windows 的 Linux 子系统)?
linux·windows
weixin_3812881834 分钟前
MySQL中如何使用HEX函数转换十六进制_MySQL进制转换函数
jvm·数据库·python
Deitymoon43 分钟前
嵌入式数据库——SQLite基础
数据库·sqlite
YMatrix 官方技术社区43 分钟前
美国·硅谷|YMatrix 即将亮相 Postgres Conference 2026,前瞻 AI 时代的数据基座
数据库·数据仓库·postgresql·时序数据库·ymatrix
bKYP953cL1 小时前
构建自己的AI编程助手:基于RAG的上下文感知实现方案
数据库·人工智能·ai编程
Bert.Cai1 小时前
MySQL DML简介
数据库·mysql