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

相关推荐
深圳恒讯6 小时前
CN2 GIA和CN2 GT的区别
运维·服务器·网络
xqqxqxxq6 小时前
Redis 五大常用数据类型 + 通用命令笔记
数据库·redis·笔记
l1t6 小时前
DeepSeek总结的在 pg_stat_statements 中诊断高基数工作负载
数据库·缓存·postgresql
橙-极纪元7 小时前
把docker的镜像文件从一台服务器中,迁移至另一台服务器
服务器·docker·容器
奔跑的架构师7 小时前
[A-49]ARMv9/v8-PSCI接口规范与工作流程简介
android·linux·arm开发·arm
ydyd202604217 小时前
设备OEE怎么提升?数据采集+分析优化的完整方案
java·服务器·前端
ACP广源盛139246256737 小时前
WAIC2026 国产算力浪潮下@ACP#IX8024 在算力矩阵中的定位与落地场景
大数据·数据库·人工智能·嵌入式硬件·线性代数·矩阵
(╹◡╹)7 小时前
11.RK3588本地大模型内存评估优化
java·linux·前端
snow@li7 小时前
MySQL:库表设计完整规范与实战方案
数据库·mysql