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。
名字和字段都可以随便取。

JSON_TABLE的官网使用说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值