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

相关推荐
Yana.nice5 分钟前
openssl将证书从p7b转换为crt格式
java·linux
布局呆星10 分钟前
SQLite数据库的介绍与使用
数据库·python
AI逐月10 分钟前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
2401_8384725110 分钟前
用Python和Twilio构建短信通知系统
jvm·数据库·python
想逃离铁厂的老铁12 分钟前
Day55 >> 并查集理论基础 + 107、寻找存在的路线
java·服务器
石头wang16 分钟前
oracle jdbc 依赖以及对dbeaver的性能影响,如何选择oracle驱动, oracle jdbc 驱动
数据库·oracle
weixin_4521595518 分钟前
如何从Python初学者进阶为专家?
jvm·数据库·python
小白跃升坊38 分钟前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
2301_790300961 小时前
用Python读取和处理NASA公开API数据
jvm·数据库·python
跃渊Yuey1 小时前
【Linux】线程同步与互斥
linux·笔记