mysql【8.0版本】JSON_TABLE,json转换为表的使用
·
JSON_TABLE 是mysql8.0版本后支持的函数,用于将json字符串映射为mysql的表
JSON_TABLE 实战
// table1.jsonFiled = ["1000000000000191","1000000000000192","1000000000000193","1000000000000194"]
SELECT
GROUP_CONCAT(table2.filedName SEPARATOR '; ') Names
from
JSON_TABLE(table1.jsonFiled , "$[*]" COLUMNS(
m1 varchar(40) PATH "$"
)
) as aaaa
解释:该段sql表示将table1中的jsonFiled字段值映射为aaaa表,并将值映射在aaaa表中的m1字段。
JSON_TABLE(
expr,
path COLUMNS (column_list)
) [AS] alias
column_list:
column[, column][, ...]
column:
name FOR ORDINALITY
| name type PATH string path [on_empty] [on_error]
| name type EXISTS PATH string path
| NESTED [PATH] path COLUMNS (column_list)
on_empty:
{NULL | DEFAULT json_string | ERROR} ON EMPTY
on_error:
{NULL | DEFAULT json_string | ERROR} ON ERROR
该段是mysql官网给出的关于JSON_TABLE的使用和解释
结合官网给出实例分析
mysql> SELECT *
-> FROM
-> JSON_TABLE(
-> '[{"x":2,"y":"8"},{"x":"3","y":"7"},{"x":"4","y":6}]',
-> "$[1]" COLUMNS(
-> xval VARCHAR(100) PATH "$.x",
-> yval VARCHAR(100) PATH "$.y"
-> )
-> ) AS jt1;
+------+------+
| xval | yval |
+------+------+
| 3 | 7 |
+------+------+
JSON_TABLE : json转table的函数
[{“x”:2,“y”:“8”},{“x”:“3”,“y”:“7”},{“x”:“4”,“y”:6}] : 这串是给出的json字符串示例
$[1] : 表示获取这个json结合中下表为1位置的对象进行解析
[ ∗ ] :表示解析全部 j s o n 串信息 C O L U M N S :表示解析 j s o n 串映射的字段描述 x v a l :表示自定义字段名 x v a l V A R C H A R ( 100 ) P A T H " [*] : 表示解析全部json串信息 COLUMNS : 表示解析json串映射的字段描述 xval : 表示自定义字段名 xval VARCHAR(100) PATH " [∗]:表示解析全部json串信息COLUMNS:表示解析json串映射的字段描述xval:表示自定义字段名xvalVARCHAR(100)PATH".x", : 表示xval字段类型为VARCHAR,字段值最大长度为100 ,PATH是固定格式,$.x 表示 xval对应的就是json字符串对象中的x字段。
AS jt1 : 表示给映射的表起个名字,叫jt1。
名字和字段都可以随便取。
更多推荐
所有评论(0)