Laravel 8从数据库查询json数据



我有一个列名测试,我在其中存储JSON数据,数据是这样的

{
"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

和我的查询是这样的

$query = Test::where('id','4030662213806')
$query->orWhereJsonContains('test->line_items->vendor',$val);

也试过

$query->orWhereJsonContains('test->line_items->vendor',$val);

但不工作

请帮忙

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

$query->orWhereJsonContains('test->line_items', ['vendor' => $val]);


另外,如果您试图从testJSON列查询id,第一行应该是

$query = Test::where('test->id', 4030662213806);

你可以试试

$query = Test::where('id','10357822685358')
$query->orWhereJsonContains('test->line_items->vendor',$val);

因为它是id和value samsung 1

最新更新