如何从我的SQL中的嵌套json结构中提取值?

时间:2018-08-10 11:15:24

标签: mysql

我有这样的json

我的列名是data

[  
  {  
    "DetailMaster":{  
      "DetailsID":"FD001",
      "Number":"9W82Q",
      "RegNumber":"SF AAV",
      "Hours":"4000"
    },
    "DetailChild":[  
      {  
        "subDetailsID":"FD001_Sub01",
        "DetailsID":"FD001",
        "model":"B737"
      }
    ]
  }
]

我只想通过在json中提供Number和RegNumber来获取列数据。我该怎么办

1 个答案:

答案 0 :(得分:1)

可以通过两种方法实现。

1)使用 JSON_EXTRACT

mysql> SELECT c, JSON_EXTRACT(c, "$.id"), g
 > FROM jemp
 > WHERE JSON_EXTRACT(c, "$.id") > 1
 > ORDER BY JSON_EXTRACT(c, "$.name");

2)使用列->>路径

-> 运算符与两个自变量一起使用时用作 JSON_EXTRACT()函数的别名,左侧为列标识符,右侧为JSON路径将根据JSON文档(列值)进行评估。您可以使用此类表达式代替SQL语句中出现的列标识符。

mysql> SELECT c, c->"$.id", g
 > FROM jemp
 > WHERE c->"$.id" > 1
 > ORDER BY c->"$.name";

其中c是JSON的列。 有关更多参考,请访问MySQL官方网站。