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

相关推荐
诺青2355 分钟前
MongoDB副本集
数据库·mongodb
Suger99916 分钟前
centos网络打流测试
linux·网络·centos
正在走向自律31 分钟前
金仓数据库打通电子证照国产化“最后一公里”——福建某地2TB MongoDB无缝迁移实践
数据库·mongodb·国产数据库·电科金仓
小何好运暴富开心幸福1 小时前
操作系统之初识Linux
linux·运维·服务器·bash
阿波罗尼亚1 小时前
复杂查询:直接查询/子查询/视图/CTE
java·前端·数据库
Go高并发架构_王工1 小时前
MySQL内存优化:缓冲池与查询缓存调优技术详解
数据库·mysql·缓存
こ进制掌控者1 小时前
Ubuntu server 24.04.3 设置静态IP
linux·tcp/ip·ubuntu
程序员小董2 小时前
关于Unix Domain Socket的使用入门
服务器·unix
disanleya2 小时前
mysql怎么安装,新手安装MySQL后如何安全备份不踩坑?
数据库·mysql
zhennann2 小时前
VonaJS多租户同时支持共享模式和独立模式
数据库·typescript·node.js·nestjs