我以一种格式存储在列(速率)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"
谢谢
答案 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;
然而,这只会获取第一个“行”。您可以使用SP迭代JSON数组以获取其余数据。