基于2个json字段创建视图

时间:2017-02-21 16:22:19

标签: mysql sql

在我们的系统中,我们有11个标准(id 1..11)

我们在MySQL 5.6中有一个表,在这个表中有一个包含JSon对象的文本列:

标准列示例:

[
  {
    "important": false,
    "paramsJson": {
      "items": [
        {
          "text": "asd"
        },
        {
          "text": "fasf"
        },
      ]
    },
    "criteria": 1
  },
  {
    "important": true,
    "paramsJson": {
      "A": "X",
      "B": "Y",
      "C": 2
    },
    "criteria": 11
  },
  {
    "important": false,
    "paramsJson": {
      "ASD": true,
      "WERT": true,
    },
    "criteria": 10
  }
]

格式是"重要"属性首先,然后是" paramsJson"这可以包含复杂的对象,最后是"标准" ID。 我们可以按任何顺序拥有最多11个标准。

现在我想为每个条件创建一个包含重要列的视图 所以我们将有11列重要1,...,重要11。每列可以为null / true / false。

在上面的json示例中,条目将包含important1 = false,important10 = false和important11 = true(其余为null)。

非常感谢您提供有关如何从条件列中提取重要属性的建议,并将其附加到后面的cirteria ID。

由于

1 个答案:

答案 0 :(得分:1)

您可以尝试MySQL JSON UDFs,其中包含JSON_EXTRACT()函数,您可以使用该函数从存储在MySQL中的字符串中提取JSON对象和元素。您可能需要阅读我的blog post以获取有关安装UDF的说明。最新版本可以下载here

如果您升级到MySQL 5.7,那么您可以在视图中使用native JSON functions,并且您还可以选择将generated columns添加到表中,以便在需要时公开提取的JSON值