是否有一种方法来查询MySQL 5.7JSON数据类型中的对象数组,这相当于Mongos $elemMatch?
例如,如果将以下文档保存在MySQL JSON列中
{
fields: [
{
key: 'age',
value: 20
},
{
key: 'years_employed',
value: 10
}
]
}在蒙戈,我可以用
.find({fields: {$elemMatch: {key:'age', value:20}}})这将返回包含字段数组的任何文档,该字段数组包含具有匹配键和值的参数的对象。以上内容将返回示例文档,但以下内容将不返回任何内容:
.find({fields: {$elemMatch: {key:'age', value:10}}})我希望在MySQL 5.7中找到相同的功能。
发布于 2018-04-26 23:10:19
给定名为data的JSON列中的以下JSON片段,在名为data_table的表中,
{
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上测试了这个
https://stackoverflow.com/questions/35870140
复制相似问题