php json包含数组,php – 在包含JSON数组的JSON字段上进行Laravel 5.4查询

我正在尝试查询包含值数组的

JSON字段.

例如,我们将表格命名为“用户”和“朋友”字段.以下是Friends字段的外观:

[{

"id": 1,

"img": "img-1.jpg",

"name": "Name 1"

},

{

"id": 2,

"img": "img-2.jpg",

"name": "Name 2"

},

{

"id": 3,

"img": "img-3",

"name": "Name 3"

}]

所以我想要做的是在User表上查询来自Friends字段的所有内容,其中id等于3.

所以类似于:User :: where(‘friends-> id’,3) – > orderBy(‘id’,’desc’) – > get();

当然,如果字段不包含数组,上面的例子可以完美地工作,所以如果它只是:

{

"id": 1,

"img": "img-1.jpg",

"name": "Name 1"

}

绝望,虽然我知道它不合逻辑,但我尝试过“whereIn”:User :: whereIn(‘friends-> id’,[3]) – > get().或类似的东西:User :: where(‘friends-> [0] – > id’,3) – > get(),User :: where(‘friends-> [*] – > id’ ,3) – > get(),User :: where(‘friends-> * – > id’,3) – > get().

我也试过JSON_CONTAINS或JSON_SEARCH:User :: whereRaw(‘JSON_CONTAINS(friends->“$.id”,“3”)’) – > get()和许多不同的变种,但没有做到.

来到这里之前我已经阅读了一些有关此事的有趣文章(它们列在下面),但我似乎是唯一一个曾在MySQL数据库中存储过JSON数组的人,这怎么可能? ^^

所以,如果有人能帮我解决这个问题,我真的很感激.

附注:我当前的MySQL版本是5.7.11,因此它支持JSON字段,而Laravel不会抛出任何错误,它只返回一个空数组.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值