首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 8从数据库查询json数据

Laravel 8从数据库查询json数据
EN

Stack Overflow用户
提问于 2021-10-13 15:38:09
回答 2查看 128关注 0票数 0

我有一个列名测试,在其中存储JSON数据,数据如下所示

代码语言:javascript
复制
{
    "id": 4030662213806,
    "buyer_accepts_marketing": true,
    "cancel_reason": null,
    "cancelled_at": null,
    "line_items": [
        {
            "id": 10357822685358,
            "vendor": "Samsung-1",
        },
        {
            "id": 10357822685358,
            "vendor": "Samsung-2",
        },
        {
            "id": 10357822685358,
            "vendor": "Samsung-3",
        }
    ],
    
}

我正在试图获取供应商价值为三星-1的数据。

我的查询是这样的

代码语言:javascript
复制
$query = Test::where('id','4030662213806')
$query->orWhereJsonContains('test->line_items->vendor',$val);

也试过

代码语言:javascript
复制
$query->orWhereJsonContains('test->line_items->vendor',$val);

但没起作用

有什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-13 18:56:59

查询line_items数组包含键vendor和值Samsung-1的位置

代码语言:javascript
复制
$query->orWhereJsonContains('test->line_items', ['vendor' => $val]);

另外,如果您试图从id JSON列查询test,那么第一行应该是

代码语言:javascript
复制
$query = Test::where('test->id', 4030662213806);
票数 1
EN

Stack Overflow用户

发布于 2021-10-13 15:48:40

你可以试试

代码语言:javascript
复制
$query = Test::where('id','10357822685358')
$query->orWhereJsonContains('test->line_items->vendor',$val);

因为它是id和值三星1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69558401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档