有没有办法查询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}}})
这将返回包含字段数组的任何文档,该字段数组包含具有与键和值匹配的参数的对象。以上内容将返回示例文档,但以下内容不会返回任何内容:
.find({fields: {$elemMatch: {key:'age', value:10}}})
我希望在MySQL 5.7中找到相同的功能。
答案 0 :(得分:1)
在名为MEDIUMINT
的表中名为data
的JSON列中给出以下JSON代码段,
data_table
您将使用JSON_CONTAINS
函数(如以下SQL语句中所示)来选择与特定' age'
{
fields: [
{
key: 'age',
value: 20
},
{
key: 'years_employed',
value: 10
}
]
}
我在MySQL 5.7.17上测试了这个