thinkphp8模型中 where数组条件大于,小于,like等条件时与tp5/6 的区别和使用示例

tp8模型中的where查询条件为数组且使用大于,小于,like等条件时的使用方式和之前的tp5/6等版本的使用区别如下:

thinkphp8 中的where数组查询条件

大于 >, 小于, like等条件时使用方法:

// 查询user表中id大于2, name以张开头的用户
$user = User::where([['id', '>','2'],['name','like','%'.'张']])->select();

// 最后生成的sql如:
// SELECT * FROM `tms_user` WHERE ( `id` > 2 AND `real_name` LIKE '%张' ) AND `tms_user`.`delete_time` IS NULL

注意这里的where数组条件里面有多个时使用的是二维数组的形式,既 [ [条件1], [条件2] ],

当条件是等于=时,如果是多个,使用  [ ['id', '=','2'] ],  如果只有一个条件/或者条件是等于 则可以只用索引数组, 如: ['id'=>'2', 'real_name'=>'张三' ],  对于这种情况下的where就和tp5,6是一样的了。如下示例:

User::where(['id'=>'2','real_name'=>'张三'])->select();
// SELECT * FROM `tms_user` WHERE ( `id` = 2 AND `real_name` = '张三' ) AND `tms_user`.`delete_time` IS NULL

注意:在thinkphp8中,索引数组的where条件会生成IN的查询条件, 如:where( ['id'=>[1,2,3]] )  最后生成的SQL是  `id` IN (1,2,3) 

thinkphp5/6的where数组条件中大于,小于,like的使用

注意这里的大于,小于,like条件是对某个字段使用条件数组

// 查询user表中id大于2, name以张开头的用户
$user = User::where(['id'=>array('>','2'),'name'=>array('like','%'.'张')])->select();

tp5中的in, not in等查询条件的构建

$whereArr['id'] = array('eq',100);  //  等效于:$map['id'] = 100;
$whereArr['id'] = array('neq',100);  //  id != 100
$whereArr['id'] = array('gt',100); //   id > 100
$whereArr['id'] = array('egt',100); //   id >= 100
$whereArr['id'] = array('lt',100);  //  id < 100
 $whereArr['id'] = array('elt',100); //   id <= 100

$whereArr['id'] = array('in','1,5,8');  //  id in(1,5,8)
$whereArr['id'] = array('not in','1,5,8');   //   id not in(1,5,8)

$whereArr['id'] = array(array('gt',3),array('lt',10), 'or'); //   (id > 3) OR (id < 10)

$whereArr['id'] = array('between','1,8');   // id BETWEEN 1 AND 8

exp    综合表达式 $whereArr['id'] = array('exp','in(1,3,8)');

示例: $res = db('user')->filed(*)->where($whereArr)->select();

where字符串条件和其他情况

字符串条件和其他情况tp8, tp5,6他们的where的构造方式是一样的,如下示例:

where('email', 'like', '%abc%') // email like '%abc%'

where('real_name', '张三')  // real_name='张三'

where('id', 1)  // id=1

只有一个条件时大于,小于,like等的使用tp8,6,5,3他们的使用方法都是一样的,如

where('id','>',10)   // 生成的SQL:    id > 10
 

总结:tp8中的模型where数组条件在大于,小于,like或者有多个条件时使用的是二维数组的方式,而tp5、6中使用的是索引数组+条件数组的形式, 其他的字符串条件和单个条件时的where使用各个版本都是一样的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/905520.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

$tab的所有用法以及vue关闭页面的方法汇总

1、最简单粗暴的就是直接window.close(); 2.可以设置一个窗口的显示隐藏变量&#xff0c;比如点击新增按钮时&#xff0c;新增页面窗口就进行显示&#xff0c;点击关闭就把这个值置为flase 在最外层绑定open 初始值设为false 点击新增和修改按钮时&#xff0c;把状态置为true即…

深度学习(八) TensorFlow、PyTorch、Keras框架大比拼(8/10)

一、深度学习框架概述 深度学习框架在当今人工智能和机器学习领域中占据着至关重要的地位。其中&#xff0c;TensorFlow 由 Google 开发&#xff0c;自 2015 年发布以来&#xff0c;凭借其灵活的计算图、自动微分功能以及跨平台支持等特点&#xff0c;迅速成为主流深度学习框架…

<HarmonyOS第一课>HarmonyOS SDK开放能力简介的课后习题

不出户&#xff0c;知天下&#xff1b; 不窥牖&#xff0c;见天道。 其出弥远&#xff0c;其知弥少。 是以圣人不行而知&#xff0c;不见而明&#xff0c;不为而成。 本篇<HarmonyOS第一课>HarmonyOS SDK开放能力简介是简单介绍了HarmonyOS SDK&#xff0c;不需要大家过多…

WPF自定义日历控件Calendar 的方法

推荐下载地址 https://www.haolizi.net/example/view_2107.html <UserControl.Resources><local1:DayConverter x:Key"DayConverter"/><!--导入转换器--><Style x:Key"CalendarStyle1"TargetType"{x:Type Calendar}">&…

园区网典型技术应用

工厂、政府机关、商场、写字楼、校园、公园等&#xff0c;这些场所内为了实现数据互通而搭建的网络都可以称之为园区网 1. 园区网络架构与常见技术概述 某高校校园网络采用三层架构&#xff0c;核心层和汇聚层各有其明确的职责&#xff1a; 核心层&#xff1a;部署两台核心交…

计算机考研,选择西安交通大学还是哈工大?

C哥专业提供——计软考研院校选择分析专业课备考指南规划 经过全面分析&#xff0c;2025年考研西安交通大学和哈尔滨工业大学计算机专业的报考难度对比如下&#xff1a; 西安交通大学计算机专业 > 哈尔滨工业大学计算机专业 对于想要报考985高校计算机专业但核心目标是优…

3D游戏阴影技术综合指南

在维姆文德斯 (Wim Wenders) 的优秀作品《完美的日子》 (Perfect Days) 的结尾&#xff0c;男主角平山 (Hirayama) 在桥下喝啤酒&#xff0c;因为他看到一个商人在追求他的暗恋对象。突然&#xff0c;商人在桥下加入了他。事实证明&#xff0c;事情并没有那么简单&#xff0c;但…

Unity 2D寻路导航 NavMeshPlus解决方案

插件的github主页 h8man/NavMeshPlus: Unity NavMesh 2D Pathfinding 这个插件是基于新版3D寻路导航制作的&#xff0c;所以你可能需要看一下这篇文章 新旧Navmash 寻路导航组件对比 附使用案例与实用教程链接-CSDN博客 这行代码agent.updateUpAxis false 一定要为代理单位…

K8s企业应用之容器化迁移

#作者&#xff1a;曹付江 K8s企业应用之容器化迁移 Kubernetes&#xff08;K8s&#xff09;中的企业应用容器化迁移是一个复杂但重要的过程&#xff0c;平滑的迁移应用&#xff0c;可以让开发、运维、测试人员循序渐进的学习和掌握Kubernetes&#xff0c;通常包括以下步骤&am…

Flash的语音ic型号有哪些?

深圳唯创知音电子有限公司在语音技术领域具有深厚的积累&#xff0c;其Flash语音IC产品凭借高性能和广泛的应用领域&#xff0c;在市场上占据了一席之地。以下是对该公司Flash语音IC产品的详细介绍&#xff1a; 一、产品概述 Flash语音IC是一种采用Flash存储技术的语音芯片&…

vscode摸鱼学习插件开发

不知道大家在摸鱼的时候&#xff0c;会不会想要学习&#xff1f; 或者有没有考公人&#xff0c;下班要学习的&#xff1f; 上班时间摸鱼&#xff0c;下班时间不够学习&#xff1f; 为此&#xff0c;我决定开发一个vscode插件&#xff0c;来刷粉笔题 粉笔插件名称&#xff1a;…

PPT制作新选择:本地部署PPTist结合内网穿透实现实时协作和远程使用

文章目录 前言1. 本地安装PPTist2. PPTist 使用介绍3. 安装Cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击跳转到网站】 前…

文件上传知识梳理:原理、工具、绕过、利用与防御

文章简介&#xff1a; 本文全面梳理了文件上传相关知识&#xff0c;包括文件上传漏洞的原理及危害&#xff0c;介绍了 Webshell 相关工具&#xff08;如冰蝎、哥斯拉、蚁剑&#xff09;&#xff0c;详细阐述了文件上传绕过检测的多种方法&#xff08;前端检测、服务端检测的各…

SpringMvc参数传递

首先对于post请求汉字乱码需要进行过滤器配置 普通参数传递 直接传递 客户端传递的属性名与我的bean中的函数参数名相同 映射传递RequestParam("XXX") 在我们方法参数中定义一个与客户端属性名一致 并绑定参数 POJO实体类传递 嵌套POJO传递 数组likes参数传递…

sqoop Oracle to hive出现 Error Msg = ORA-00933: SQL 命令未正确结束

原sqoop脚本&#xff1a; sqoop import \ --connect "jdbc:oracle:thin://10.82.88.223:61521/LZY2" \ --username LZSHARE \ --password LZ^share$5105 \ --driver oracle.jdbc.driver.OracleDriver \ --query "SELECT TO_NUMBER(TO_CHAR(GCRQ, YYYY)) AS gcr…

Spring Boot + Vue:打造高效图书借阅管理平台

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

STM32F103C8T6学习笔记1--新建工程模板

1、简介 STM32是一系列由STMicroelectronics&#xff08;瑞士意法半导体&#xff09;公司设计和生产的32位微控制器产品线。这些微控制器基于ARM Cortex-M内核&#xff0c;并具有高性能、低功耗和多种外设接口的特点。STM32处理器被广泛应用于各种嵌入式系统领域&#xff0c;包…

Java日志脱敏(二)——fastjson Filter + 注解 + 工具类实现

背景简介 日志脱敏 是常见的安全需求&#xff0c;最近公司也需要将这一块内容进行推进。看了一圈网上的案例&#xff0c;很少有既轻量又好用的轮子可以让我直接使用。我一直是反对过度设计的&#xff0c;而同样我认为轮子就应该是可以让人拿去直接用的。所以我准备分享两篇博客…

篡改猴 (Tampermonkey) 安装与使用

一、下载篡改猴 (Tampermonkey) 步骤1---官网&#xff1a;篡改猴 - Microsoft Edge Addons

无人机之感知避让技术篇

无人机的感知避让技术是无人机安全飞行的重要保障&#xff0c;它依赖于多种传感器和算法来实现对周围环境的感知和判断。 一、主要技术类型 视觉避障 原理&#xff1a;通过安装在无人机上的摄像头捕捉周围环境的图像&#xff0c;利用计算机视觉技术对图像进行处理和分析&…