gpt4 book ai didi

mysql - 在 Mysql 中检索 JSON 数组内的 Json 数据值

转载 作者:行者123 更新时间:2023-11-29 09:23:47 25 4
gpt4 key购买 nike

我有 JSON 列,其中包含 JSON 数组。我的场景是获取 url 值为的所有记录'"example.com/user1"' 存在。我在编写此操作的查询时遇到问题。

Record1
[
{
"id": "1",
"firstname": "user1",
"url": "example.com/user1"
},
{
"id": "2",
"firstname": "user2",
"url": "example.com/user2"
}
]
Record2
[
{
"id": "1",
"firstname": "user3",
"url": "example.com/user3"
},
{
"id": "2",
"firstname": "user2",
"url": "example.com/user2"
}
]
......
......
......
Record10
[
{
"id": "1",
"firstname": "user10",
"url": "example.com/user10"
},
{
"id": "2",
"firstname": "user1",
"url": "example.com/user1"
}
]

我运行的查询是:

Select internal_id from users_dummy where JSON_EXTRACT(user_friends, '$[0].url') = "example.com/user1" or JSON_EXTRACT(user_friends, '$[1].url') = "example.com/user1";

所以o/p是:记录1,记录10

这是在记录中搜索值的正确方法吗?提前致谢。

最佳答案

您可以使用JSON_SEARCH像这样:

SELECT * 
FROM users_dummy
WHERE JSON_SEARCH(user_friends, 'one', 'example.com/user1', NULL, '$[*].url') IS NOT NULL

demo on dbfiddle.uk

如果您使用对象而不是数组,可以使用以下解决方案:

SELECT * 
FROM users_dummy
WHERE JSON_SEARCH(user_friends, 'one', 'example.com/user1', NULL, '$.*.url') IS NOT NULL

demo on dbfiddle.uk

关于mysql - 在 Mysql 中检索 JSON 数组内的 Json 数据值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59973329/

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