有没有办法丰富MySQL中的JSON字段?

时间:2019-07-25 21:59:03

标签: mysql json

让我们采用一个包含两个表的简单模式,一个表描述一个简单的实体 item (id,名称)

id  |   name
------------
1   |   foo
2   |   bar

和另一个,我们称其为 collection ,它引用 item ,但是在JSON对象内部,类似

{
    items: [
        {
            id: 1,
            quantity: 2
        }
    ]
}

我正在寻找一种方法,最终用 item 丰富 collection 中的该字段(在Mongo中类似于 populate )。引用的元素,以检索类似

的内容
{
    ...
    items: [
        {
            item: {
                id: 1,
                name: foo
            },
            quantity: 2
        }
    ]
    ...
}

如果您对PostgreSQL有解决方案,我也接受。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么您的要求是将Input JSON数据转换为MySQL表,以便可以使用JSON但可以利用SQL的功能。

Mysql8最近发布了JSONTABLE函数。通过使用此功能,您可以将JSON直接存储在表中,然后像其他任何SQL查询一样对其进行查询。

它应该适合您的直接情况,但这意味着您的表模式将具有JSON列,而不是传统的MySQL列。您需要检查它是否符合您的目的。

This是一个很好的教程。