我有一个列名测试,在其中存储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);但没起作用
有什么帮助吗?
发布于 2021-10-13 18:56:59
查询line_items数组包含键vendor和值Samsung-1的位置
$query->orWhereJsonContains('test->line_items', ['vendor' => $val]);另外,如果您试图从id JSON列查询test,那么第一行应该是
$query = Test::where('test->id', 4030662213806);发布于 2021-10-13 15:48:40
你可以试试
$query = Test::where('id','10357822685358')
$query->orWhereJsonContains('test->line_items->vendor',$val);因为它是id和值三星1
https://stackoverflow.com/questions/69558401
复制相似问题