gpt4 book ai didi

Mysql 5.7 相当于 Mongodb $elemMatch

转载 作者:行者123 更新时间:2023-11-29 02:18:19 27 4
gpt4 key购买 nike

有没有一种方法可以在 MySQL 5.7 JSON 数据类型中查询与 Mongos $elemMatch 等效的对象数组?

例如,如果我将以下文档保存在 MySQL JSON 列中

{
fields: [
{
key: 'age',
value: 20
},
{
key: 'years_employed',
value: 10
}
]
}

在 Mongo 中,我可以使用

.find({fields: {$elemMatch: {key:'age', value:20}}})

这将返回任何包含 fields 数组的文档,该数组包含一个对象,该对象具有与键和值都匹配的参数。以上将返回示例文档,但以下将不返回任何内容:

.find({fields: {$elemMatch: {key:'age', value:10}}})

我希望在 MySQL 5.7 中找到相同的功能。

最佳答案

在名为 data_table 的表中名为 data 的 JSON 列中给出以下 JSON 片段,

{
fields: [
{
key: 'age',
value: 20
},
{
key: 'years_employed',
value: 10
}
]
}

你会使用 JSON_CONTAINS函数,就像在下面的 SQL 语句中一样,选择与特定“年龄”匹配的行

SELECT * FROM `data_table` WHERE JSON_CONTAINS(`data`, '{"key":"age","value":20}', "$.fields")

我在 MySQL 5.7.17 上测试过

关于Mysql 5.7 相当于 Mongodb $elemMatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35870140/

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