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

thinkphp5使用模型删除与复杂查询EXP

模型删除

应用软删除
表中需要有字段,deletetime
模型中使用下面方法

    use SoftDelete;protected $deleteTime = 'delete_time';

真实删除

// 软删除
User::destroy(1);
// 真实删除
User::destroy(1,true);
$user = User::get(1);
// 软删除
$user->delete();
// 真实删除
$user->delete(true);

EXP复杂查询

thinkphp的exp语句,支持复杂的查询条件
在这里插入图片描述

还要其他的复杂查询涵盖了mysql所有的复杂查询
https://www.kancloud.cn/manual/thinkphp5/135182

$list=$list->where('','exp', "instr(CONCAT( ',', tags, ',' ),  ',".$tags.",' )");//查找那些tags字段中包含特定$tags值的记录

where(‘’,‘’, ‘exp’, …):这里,前两个参数为空字符串,是因为在使用exp时,通常不需要指定字段名和值,自定义的SQL表达式会直接用于构建条件。

"instr(CONCAT( ',', tags, ',' ),  ',".$tags.",' )"

这部分是自定义的SQL表达式,其作用是检查tags字段值中是否包含某个特定的标签(由变量$tags表示)。

CONCAT( ',', tags, ',' )

这个函数将tags字段值前后各加上逗号,例如,如果tags原值为"tag1,tag2,tag3",则处理后变为",tag1,tag2,tag3,"。这样做的目的是为了方便使用instr函数检查子串是否存在,无论$tags是要查找的标签位于值的开始、中间还是结束,都能准确匹配。

instr(..., ',".$tags.",' )

instr函数用于查找子串位置,它在这里检查刚才构造的带有逗号的字符串中是否包含形如," t a g s " , 的模式,即 tags",的模式,即 tags",的模式,即tags前后各有一个逗号。如果找到匹配项,则返回子串起始位置,否则返回0。在ThinkPHP的上下文中,只要instr的结果不为0,就认为条件满足,即tags字段包含了指定的$tags值。

这里使用原生的sql查询

select * from fa-todo where instr(CONCAT( ',', tags, ',' ),  ’,4,‘)

这里是可以正常运行的,查询数据表中是否有tags字段汉语4的数据

在这里插入图片描述

tp5中save和update的区别
model->where(id,id)->save
这里用了where模型查询会变成query查询,不能再用save
所以改成update能使用

http://www.lryc.cn/news/377625.html

相关文章:

  • 铜陵市省重点实验室、省工程技术研究中心认定奖励补贴和申报认定条件流程归集
  • Linux-目录和文件
  • 2024-06月 | 维信金科 | 风控数据岗位推荐,高收入岗位来袭!
  • 不适合编程的人是怎样的?
  • el-table表格变更前后根据数据值改变背景颜色
  • flask基础知识1
  • 第8天:Django Admin高级配置
  • 本地无法连接linux上的MariaDB数据库
  • 使用 Netty 自定义解码器处理粘包和拆包问题详解
  • SDK编译IO Domain电压选择
  • 如何在纯内网环境下,将EasyCVR视频汇聚网关通过4G与第三方公网云平台级联?
  • 2024-06-14 AI资讯:CCF论坛探讨大模型挑战,启动安全赛
  • 玩转Matlab-Simscape(初级)- 10 - 基于COMSOLSimulink 凸轮机构的控制仿真
  • spark学习总结
  • eNSP学习——帧中继基本配置
  • XML Encoding = ‘GBK‘ after STRANS,中文乱码
  • C 语言通用MySQL 功能增删查改功能.
  • Java学习 - MySQL表 增减删查
  • 力扣SQL50 有趣的电影 简单查询
  • 01. Java并发编程简介
  • 使用Node.js+Express开发简单接口
  • 【Python】使用OpenCV特征匹配检测图像中的【特定水印】
  • 基于 Clang和LLVM 的 C++ 代码静态分析工具开发教程
  • Mathtype与word字号对照+Mathtype与word字号对照
  • PHP 8.4有哪些新功能值得关注
  • PyCharm新手入门
  • [Linux] 系统管理
  • Xcode无法使用设备:Failed to prepare the device for development
  • AWS无服务器 应用程序开发—第十二章 AWS Step Functions
  • Linux tcpdump详解