如何读取存储在mysql DB中的json数组

时间:2018-04-04 08:24:34

标签: mysql json

我以一种格式存储在列(速率)MySQL DB中的Json数据:

[
  [
    {"value":null},
    {"value":"PaketA"}
  ],[
    {"value":"2,10"},
    {"value":"3,10"}
  ],[
    {"value":"4,10"},
    {"value":"3,15"}
  ],[
    {"value":"8,10"},
    {"value":"3,15"}
  ],[
    {"value":"12,00"},
    {"value":"3,20"}
  ],[
    {"value":"20,00"},
    {"value":"3,25"}
  ],[
    {"value":"31,50"},
    {"value":"3,30"}
  ]
]

我想使用sql获取这样的值:

Column 1 │ Column 2  
Null     │ PaketA  
2,10     │ 3,10  
4,10     │ 3,15  
etc...   │ etc...

这可能吗?

每当我尝试使用json解析命令时,如: 选择
rate [0] AS rate_0
来自tablev

我总是得到:

  

Invalid argument types for function "GET"

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用json_extract执行此操作。假设表名是JSON_TABLE而json cloumn是JSON_DATA

SELECT json_unquote(json_extract(JSON_DATA, '$[0][0].value')) AS Column_1, json_unquote(json_extract(JSON_DATA, '$[0][1].value')) AS Column_2 FROM JSON_TABLE;

Output

然而,这只会获取第一个“行”。您可以使用SP迭代JSON数组以获取其余数据。