【ThinkPHP】like同一个字段多个条件查询

简介: 【ThinkPHP】like同一个字段多个条件查询

屏幕快照 2022-05-19 下午2.23.52.png

#代码呈现
$a = '2017,欧美,动作';
# 如果参数是这样的一点问题没有
$where['category'] = ['like','%'.$a.'%'];
$a = '2017,动作';
# 如果参数是这样的那就直接凉  因为like是全量匹配不会分开匹配
$where['category'] = ['like','%'.$a.'%'];

屏幕快照 2022-05-19 下午2.24.09.png

解决问题


我们发现了问题那么我们是不是就可以考虑一下


既然单个可以查询到 那么我们就把参数进行分割一下,分割为数组,然后进行拼接like查询


但是这个时候问题来了,很多人都是没有做过同一字段多个条件查询的


大多数的场景都是多个字段对应多个查询条件


这个时候或许就会想到用sql开始拼接 当然也可以实现,但是今天的主题不在这里


屏幕快照 2022-05-19 下午2.24.41.png

$a = '2017,欧美,动作';
$category = implode(',',$a);
foreach($category as $k => $v) {
  $where['category'] = [
    ['like','%'.$v.'%']
  ];
}


屏幕快照 2022-05-19 下午2.25.11.png

$a = '2017,欧美,动作';
$category = implode(',',$a);
$where = [];
if(count($category) === 1){
  $where['category'] = ['like','%'.$category.'%'];
}else{
  foreach($category as $k => $v) {
    $where['category'] = [
      ['like','%'.$v.'%']
    ];
  }
}
相关文章
|
iOS开发 开发者
iOS 上架报错:无法添加以供审核
iOS 上架报错:无法添加以供审核
|
开发框架 人工智能 运维
蓝鲸自动化运维平台
蓝鲸自动化运维平台 1.蓝鲸简介 官网:https://bk.tencent.com/docs/ 腾讯蓝鲸智云,简称蓝鲸,是腾讯互动娱乐事业群(Interactive Entertainment Group,简称 IEG)自研自用的一套用于构建企业研发运营一体化体系的 PaaS 开发框架,提供了 aPaaS(DevOps 流水线、运行环境托管、前后台框架)和 iPaaS(持续集成、CMDB、作业平台、容器管理、数据平台、AI 等原子平台)等模块,帮助企业技术人员快速构建基础运营 PaaS。
3435 0
蓝鲸自动化运维平台
|
前端开发
Layui 内置方法 - layer.load(加载层)
Layui 内置方法 - layer.load(加载层)
2913 0
|
3月前
|
JavaScript 数据可视化 前端开发
2026 年最值得使用的 7 款 PHP 管理后台框架推荐
本文精选2026年最值得使用的7款Laravel后台框架(Nova、CatchAdmin、Filament、Backpack、Orchid、Voyager、QuickAdminPanel),从开发效率、灵活性与学习成本三维度对比分析,涵盖付费/开源、前后端分离/可视化等类型,助你快速选型企业级PHP管理后台。
770 1
|
存储 JSON 安全
ThinkPHP 文件上传 fileSystem 扩展的使用
本文介绍了在ThinkPHP框架中使用filesystem扩展进行文件上传的方法。包括安装filesystem扩展、了解配置文件、上传文件的验证规则以及文件上传的示例代码,旨在帮助开发者实现文件的安全上传和存储。
ThinkPHP 文件上传 fileSystem 扩展的使用
|
前端开发 JavaScript 应用服务中间件
前端跨域问题解决Access to XMLHttpRequest at xxx from has been blocked by CORS policy
跨域问题是前端开发中常见且棘手的问题,但通过理解CORS的工作原理并应用合适的解决方案,如服务器设置CORS头、使用JSONP、代理服务器、Nginx配置和浏览器插件,可以有效地解决这些问题。选择合适的方法可以确保应用的安全性和稳定性,并提升用户体验。
9142 90
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
存储 对象存储
【阿里云OSS】You have no right to access this object because of bucket acl.
【阿里云OSS】You have no right to access this object because of bucket acl.
21667 1
【阿里云OSS】You have no right to access this object because of bucket acl.
|
安全 数据处理 数据中心
不同类型的光纤电缆及其应用特点
【10月更文挑战第22天】
910 6
|
网络安全 C++ Windows
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试