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能使用

相关推荐

  1. thinkphp5.1 模型auto

    2024-06-17 17:00:02       11 阅读
  2. thinkphp5.1 新建模块

    2024-06-17 17:00:02       12 阅读
  3. thinkphp5模型的高级应用

    2024-06-17 17:00:02       6 阅读
  4. 四、Mybatis-查询删除

    2024-06-17 17:00:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-17 17:00:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-17 17:00:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-17 17:00:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-17 17:00:02       20 阅读

热门阅读

  1. ByteTrack

    ByteTrack

    2024-06-17 17:00:02      7 阅读
  2. 接手一个系统并快速入手 这里是一些建议

    2024-06-17 17:00:02       10 阅读
  3. cuda 如何计算每个线程分配了多少寄存器

    2024-06-17 17:00:02       9 阅读
  4. Redisson-获取连接原理

    2024-06-17 17:00:02       8 阅读
  5. 从零开始做ROS机器人

    2024-06-17 17:00:02       5 阅读
  6. MySQL触发器基本结构

    2024-06-17 17:00:02       7 阅读
  7. js如何添加新元素到数组中

    2024-06-17 17:00:02       7 阅读
  8. HTML中的文本标签:微观排版的艺术

    2024-06-17 17:00:02       7 阅读
  9. python项目发布Docker Harbor

    2024-06-17 17:00:02       8 阅读
  10. 军用FPGA软件 Verilog语言的编码准测之时钟

    2024-06-17 17:00:02       9 阅读