mysql - 基于 2 个 json 字段创建 View

标签 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
  }
]

格式首先是“important”属性,然后是可以包含复杂对象的“paramsJson”,最后是“criteria”id。 我们最多可以按任何顺序拥有所有 11 个标准。

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

在上面的 json 示例中,条目将具有 important1=false、important10=false 和 important11=true(其余为空)。

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

谢谢

最佳答案

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

如果升级到 MySQL 5.7,则可以使用 native JSON functions在您看来,您还可以选择添加 generated columns如果需要,可以添加到您的表中以公开提取的 JSON 值。

关于mysql - 基于 2 个 json 字段创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42372658/

相关文章:

sql - 我有一个相当大的表,需要获取行 `where column_a <> column_b` ,我需要什么样的索引?

php - PDO 中的 "SELECT :parameter FROM .."

mysql - 如何通过按小节计算*每个*组来找到家庭破坏者?

php - CDbConnection 无法打开数据库连接 : could not find driver in Yii

python - python中使用cursor.callproc()调用MySQL存储过程

mysql - 无法检索左连接上的内容

mysql - 这些 sql 连接之间的差异(相同的结果,相同的执行计划)

MySQL LEFT JOIN 过滤 NULL 行

php - 如何在 Magento 中获取重复的 SKU 产品

mysql - 我应该如何编写此 sql 查询以便只获取用户表中不存在的数字?