JsonQ高级过滤实战:whereIn、whereNull与whereContains模糊查询技巧

📅 2026/8/16 19:22:14
JsonQ高级过滤实战:whereIn、whereNull与whereContains模糊查询技巧
JsonQ高级过滤实战whereIn、whereNull与whereContains模糊查询技巧【免费下载链接】jsonqA PHP query builder for JSON项目地址: https://gitcode.com/gh_mirrors/js/jsonqJsonQ是一款优雅的PHP JSON查询构建器它让开发者可以用类似ORM的方式对JSON数据进行查询过滤。本文面向PHP新手通过whereIn、whereNull与whereContains三个高频方法带你快速掌握JsonQ高级过滤的核心技巧让JSON数据处理从繁琐的循环遍历中解放出来。一、为什么需要JsonQ高级过滤日常开发中我们经常要处理接口返回的JSON数据筛选某个分类下的商品、排除空值字段、模糊搜索用户名称。传统做法是写多层foreach循环加if判断代码冗长且难以维护。而JsonQ高级过滤功能只需一行链式调用即可完成可读性直接拉满。JsonQ的核心源码位于 src/Jsonq.php查询引擎则继承自 QArray完整的API文档可参考 README.md 和 examples/ 目录下的示例文件。二、快速入门安装与加载数据使用 Composer 一条命令即可完成安装composer require nahid/jsonq安装后通过from()方法指定要查询的JSON数据段本文以 examples/data.json 中的products商品列表为例即可开始高级过滤。下面我们逐一拆解三个实战技巧。三、whereIn多值匹配的终极便捷写法当你要筛选多个指定值的数据时whereIn是最佳选择。它等价于where(key, in, val)参数为一个数组。实战场景找出商品分类cat属于 [1, 2] 的所有商品$res $json-from(products) -whereIn(cat, [1, 2]) -get();相比用多个orWhere拼接条件whereIn让代码更简洁、意图更清晰。它还配套了whereNotIn()反向过滤用法完全一致非常适合做排除指定ID的批量操作。四、whereNull与whereNotNull空值处理技巧JSON数据中经常存在null字段例如商品表中部分商品缺少城市字段。whereNull专门用于筛选字段值为null的记录whereNotNull则恰好相反。实战场景找出city字段为空的所有商品$res $json-from(products) -whereNull(city) -get();反向场景找出所有已填写城市信息的商品$res $json-from(products) -whereNotNull(city) -get();这两个方法在数据清洗、报表统计时非常实用可以快速剔除脏数据或空记录。五、whereContains一行实现模糊查询模糊查询是搜索功能的标配。whereContains会检查字段值是否包含指定子串等价于 SQL 中的LIKE %关键词%。实战场景搜索商品名称中包含 Macbook 的所有商品$res $json-from(products) -whereContains(name, Macbook) -get();如果你需要更精确的前缀、后缀匹配JsonQ还提供了whereStartsWith和whereEndsWith三者组合可以覆盖绝大多数模糊查询场景。六、组合使用让高级过滤威力翻倍 JsonQ支持链式组合多个条件默认按 AND 逻辑叠加配合orWhere即可构建复杂的过滤表达式。综合实战筛选分类为2、城市不为空、且名称含 Mac 的商品$res $json-from(products) -whereIn(cat, [1, 2]) -whereNotNull(city) -whereContains(name, Mac) -get();这种写法与Laravel Eloquent的风格高度一致熟悉框架的开发者几乎零成本上手。七、进阶补充过滤后还能做什么JsonQ的高级过滤只是第一步查询结果还可以继续链式调用聚合方法sum()求和、count()计数、max()求最大值、groupBy()分组统计。例如统计过滤后商品的总价$total $json-from(products) -whereNotNull(city) -sum(price);各聚合方法的独立示例可参考 examples/sum.php、examples/count.php、examples/group-by.php 等文件测试用例则位于 tests/ConditionTest.php。八、小结三个技巧一次掌握方法作用适用场景whereIn / whereNotIn多值包含匹配批量筛选ID、分类whereNull / whereNotNull空值判断数据清洗、必填校验whereContains / whereStartsWith / whereEndsWith字符串模糊匹配搜索、前缀后缀过滤JsonQ高级过滤让PHP开发者可以用几行代码完成过去十几行的循环逻辑。现在就从from()加whereContains()开始你的第一个实验吧你会发现查询JSON从未如此简单。【免费下载链接】jsonqA PHP query builder for JSON项目地址: https://gitcode.com/gh_mirrors/js/jsonq创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考