gpt4 book ai didi

mysql - 如何在 Eloquent 中查询 JSON 列中的数组

转载 作者:行者123 更新时间:2023-12-05 01:33:02 25 4
gpt4 key购买 nike

我已经在 Eloquent 中使用 JSON 成功完成了一些查询,但我不知道如何从数组中的对象查询值,如下所示:

在“属性”列中,有:

{
"products": [
{
"media": "1",
"code": "4186GSB"
},
{
"media": "2",
"code": "4186GSE"
}
]
}

我想查询 "media"= 1

到目前为止我已经尝试过:

$query->where('attributes->products->media', 1); // failed
// or
$query->where('attributes->products[*]->media', 1); // failed

我不知道如何使用原始查询,但如果这是解决方案也没关系!

最佳答案

您需要使用 whereJsonContains() 查询方法来查询 json 数组(自 Laravel 5.6.24 起可用)。您的查询如下所示:

$query->whereJsonContains('attributes', ['products' => ['media' => '1']]);

如果您使用的是早期版本并且没有此功能可用,您可以使用原始查询:

$query->whereRaw(
'json_contains(attributes, ?)',
[
json_encode(['products' => ['media' => '1']])
]
);

关于mysql - 如何在 Eloquent 中查询 JSON 列中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64858436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com