当前位置: 首页 > news >正文

ThinkPHP6模型中多组条件逻辑或Or查询的使用

直接进入正题,如我们的查询条件是这样的:

(age > 20 and job_id = 3) or (sex = 1 and age < 20)

上面两组数据之间是 Or 的关系。

可使用两个闭包进行查询,代码如下:

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

相关文章:

  • BiliNote:开源的AI视频笔记生成工具,让知识提取与分享更高效——跨平台自动生成结构化笔记,实现从视频到Markdown的智能转化
  • Shell脚本-for循环应用案例
  • 算法训练营 Day1
  • OAuth2AuthorizationEndpointFilter类介绍、应用场景和示例代码
  • 第3讲、大模型如何理解和表示单词:词嵌入向量原理详解
  • Java面试高频问题(26-28)
  • AI新战局:Gemini 2.5 Pro强势挑战OpenAI o3,谁是真“全能”?“锯齿AGI”时代已来临?
  • 中国250米土壤质地类型数据
  • 筑牢数字防线:商城系统安全的多维守护策略
  • Ubuntu18.04更改时区(图文详解)
  • 【Python数据库与后端开发】从ORM到RESTful API
  • 前端基础之《Vue(11)—自定义指令》
  • 全栈国产化信创适配,构建安全可控的呼叫中心系统
  • 【安全扫描器原理】TCP/IP协议编程
  • 力扣面试150题--环形链表和两数相加
  • 【滑动窗口+哈希表/数组记录】Leetcode 438. 找到字符串中所有字母异位词
  • C语言中操作字节的某一位
  • Pandas 数据处理:长格式到宽格式的全面指南
  • 潇洒郎:ssh 连接Windows WSL2 Linux子系统 ipv6地址转发到ipv4地址上
  • SDC命令详解:使用get_cells命令进行查询
  • 一场与纪录并行的伦敦马拉松,超40项新世界纪录诞生
  • 见证上海援藏30年成果,萨迦非遗珍品展来沪
  • 美军空袭也门拘留中心,已致68人死亡
  • 国家能源局:支持民营企业参股投资核电项目
  • 科学时代重读“老子”的意义——对谈《老子智慧八十一讲》
  • 剪纸纹样“流动”在水乡,谁不忆江南