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

相关推荐
石像鬼₧魂石5 分钟前
Kali Linux 网络端口深度扫描
linux·运维·网络
alengan8 分钟前
linux上面写python3日志服务器
linux·运维·服务器
有想法的py工程师1 小时前
PostgreSQL + Debezium CDC 踩坑总结
数据库·postgresql
Rose sait1 小时前
【环境配置】Linux配置虚拟环境pytorch
linux·人工智能·python
Nandeska1 小时前
2、数据库的索引与底层数据结构
数据结构·数据库
小卒过河01041 小时前
使用apache nifi 从数据库文件表路径拉取远程文件至远程服务器目的地址
运维·服务器·数据库
过期动态2 小时前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
Mr.朱鹏2 小时前
SQL深度分页问题案例实战
java·数据库·spring boot·sql·spring·spring cloud·kafka
土星云SaturnCloud2 小时前
液冷“内卷”:在局部优化与系统重构之间,寻找第三条路
服务器·人工智能·ai·计算机外设