侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

laravel中whereJsonContains跟whereJsonDoesntContain的区别浅析

Laravel  /  管理员 发布于 2年前   738

laravel中whereJsonContains跟whereJsonDoesntContain的区别浅析


中文官网上基本都是whereJsonContains的信息,而whereJsonDoesntContain是信息特别少,

我刚好又需要查找数据库中字段不包含某个值或多个值的信息功能,所以直接上git里面搜了一下

看到了所以记录一篇文章,可能别人需要


Laravel 也支持查询 JSON 类型的字段(仅在对 JSON 类型支持的数据库上)。

目前,本特性仅支持 MySQL 5.7、PostgreSQL、SQL Server 2016 以及 SQLite 3.9.0 (with the JSON1 extension)。使用 -> 操作符查询 JSON 


都是作为查询 json 数据,一个包含一个反之

whereJsonDoesntContain是5.6*版本发布的


whereIn()与whereJsonContains()相反

whereIn()检查列值是否存在于用户提供的值中


whereJsonContains()检查列中是否存在用户提供的值。

当列值为数组时,列选择器将不包含->。

所以Laravel不会知道用户正在查询JSON列。



whereJsonContains

Model::whereJsonContains('options->languages', 'en')->get(); # 字段是数组 包含

例子:字段需数组 [1,2,3] 查询包含某一个值或多个值的数据

Models\NewsList::select('id','title','newstypeone',
DB::raw('(select `youhuipy` from `lara_23_cbb_company_CreditCard` as a where a.`id`=`lara_55_cbb_NewsList`.`bankid`) as youhuipy'))
        ->whereJsonContains('newstypeone', $row['newstypeone'])->orderBy('id','desc')->take(5)->get()->toArray();


whereJsonDoesntContain

Model::whereJsonDoesntContain('options->languages', 'en')->get(); # 字段是数组, 不包含

例子:反之

Models\NewsList::select('id','title','newstypeone',
DB::raw('(select `youhuipy` from `lara_23_cbb_company_CreditCard` as a where a.`id`=`lara_55_cbb_NewsList`.`bankid`) as youhuipy'))
        ->whereJsonDoesntContain('newstypeone', $row['newstypeone'])->orderBy('id','desc')->take(5)->get()->toArray();


希望对你有用


  • 上一条:
    【Java范型五】范型继承
    下一条:
    【Java范型七】范型消除
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在laravel框架中的5个HTTP客户端技巧分享(0个评论)
    • 在laravel项目中实现密码强度验证功能推荐扩展包:password-strength(0个评论)
    • Laravel Response Classes 响应类使用优化浅析(0个评论)
    • 在Laravel中使用FilePond上传文件及测试用例(0个评论)
    • 在laravel项目中第三方回调信息处理扩展包:flaky(0个评论)
    • 近期文章
    • 在laravel框架中的5个HTTP客户端技巧分享(0个评论)
    • 在go语言中使用FFmpeg库实现PCM音频文件编码为mp3格式文件流程步骤(0个评论)
    • gopacket免安装Pcap实现驱动层流量抓包流程步骤(0个评论)
    • 在laravel项目中实现密码强度验证功能推荐扩展包:password-strength(0个评论)
    • 在go语言中用filepath.Match()函数以通配符模式匹配字符串示例(0个评论)
    • Laravel Response Classes 响应类使用优化浅析(0个评论)
    • mysql中sql_mode的各模式浅析(0个评论)
    • 百度文心一言今天发布,个人第一批内测体验记录,不好别打我(0个评论)
    • 嘿加密世界让我们谈谈在共识中将中本聪主流化(0个评论)
    • 在go语言中寻找两个切片或数组中的相同元素/共同点/交集并集示例代码(0个评论)
    • 近期评论
    • 博主 在

      2023年国务院办公厅春节放假通知:1月21日起休7天中评论 @ xiaoB 你只管努力,剩下的叫给天意;天若有情天亦老,..
    • xiaoB 在

      2023年国务院办公厅春节放假通知:1月21日起休7天中评论 会不会春节放假后又阳一次?..
    • BUG4 在

      你翻墙过吗?国内使用vpn翻墙可能会被网警抓,你需了解的事中评论 不是吧?..
    • 博主 在

      go语言+beego框架中获取get,post请求的所有参数中评论 @ t1  直接在router.go文件中配就ok..
    • Jade 在

      如何在MySQL查询中获得当月记录中评论 Dear zongscan.com team, We can skyroc..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-01
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客