JSON合并函数
- MySQL8.0(MySQL5.7.22)增加了JSON _ MEFRGE _PATCH()。
它用于将两个JSON对象合并为一个对象 - MySQL8.0(MySQL5.7.22)增加了JSON _ MERGE _ PRESERV()。
他也是用于将两个JSON对象合并为一个对象。 - MySQL8.0废弃了JSON _ MERGE.
它们两个的差别在于上面这个函数,如果两个对象当中有相同的结点,它会使用第二个对象当中的结点,覆盖第一个结点。
那么第二个函数,如果存在两个相同的结点,它会保留两个结点当中的值。实际上第二个函数实现了之前版本中的JSON_MERGE函数,所以在8.0当中为了语义的清晰,它废除了JSON_MERGE函数。
下面我们通过示例了解两个函数的差异:
1.jpg
2.jpg
JSON表函数
MySQL8.0增加了JSON_TABLE(),将JSON数据转换为关系表,可以将该函数的返回结果当作一个普通的表,使用SQL进行查询
示例:
select * from
->json _ table ( //它返回的是一个关系型的表
->'[{"a";3},{"b";"2"},{“c”;1},{"a";[1,2]}]' //数据的来源,json对象的数组
->"$[*]" columns( //满足输出条件的正则表达式
//转换之后的关系表的结构
->rowid for ordinality
->ac varchar(100) path."$.a" default"999" on errow default'111' on empty,
->aj json exists path "$.b")
->) as tt;
这是一个使用json_table函数转换成JSON数组,将json数组转化为关系型结构表的一个实例。