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

相关推荐
東雪蓮☆2 分钟前
使用Shell脚本实现Linux系统资源监控邮件告警
linux·运维·服务器
少年攻城狮3 分钟前
SpringAI系列---【如何把ChatClient集成向量数据库SimpleVectorStore并实现RAG?】
数据库
EleganceJiaBao16 分钟前
【Neovim】Vi、Vim、Neovim 与 LazyVim:发展史
linux·编辑器·vim·vi·neovim·lazyvim
Bruce_Liuxiaowei22 分钟前
Linux系统提权之计划任务(Cron Jobs)提权
linux·运维·服务器·网络安全·系统安全
问道飞鱼27 分钟前
【数据库相关】TxSQL新增数据库节点步骤
数据库·mysql·txsql·新增节点
czhc114007566330 分钟前
Linux 96 shell:expect { }
linux·运维·服务器
2501_9301247040 分钟前
编辑shell脚本示例练习
linux·服务器·github
张人玉1 小时前
SQLSERVER数据备份
数据库·oracle·sqlserver
Ka1Yan1 小时前
MySQL索引优化
开发语言·数据结构·数据库·mysql·算法
TDengine (老段)1 小时前
TDengine 时间函数 TIMETRUNCATE 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据