MySQL 8.0是不是可以操作JSON

  介绍

本篇文章给大家分享的是有关MySQL 8.0是不是可以操作JSON,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强>前言:

经过漫长的测试,即将整体迁移至<代码> Mysql8.0> Mysql8.0> <代码>操作新增/优化了很多相关<代码> Json> 的<代码> JSON代码语法,方便进行<代码>调试>


https://dev.mysql.com/doc/ref..。

1,简单概述

不允许为<代码>零> Json 格式定义与<代码> LONGBLOB或量变> max_allowed_packet> 查看Json字段所占用空间大小的函数时JS <代码> ON_STORAGE_SIZE (xxx) ,
除普通的Json代码 <代码>操作,额外支持<代码> GeoJSON> 对Json栏位支持索引(结合<代码> Mysql8.0 新特性,函数<代码>指数> 一个可以支持部分的,原地更新<代码> Json列> Mysql8.0> JSON_SET() ,<代码> JSON_REPLACE() ,<代码> JSON_REMOVE()>

2, JSON基础工具

//使用JSON_ARRAY方法定义JSON数组;   SELECT  JSON_ARRAY (1,“abc",,空,,真的,,CURTIME ())//结果:[1,“abc",,空,,真的,,“11:30:24.000000"),,//JSON_OBJECT 方法定义JSON对象   SELECT  JSON_OBJECT (& # 39; id # 39;,, 87,, & # 39;名字# 39;,,& # 39;胡萝卜# 39;)//结果{“id": 87年,,,“name":,“carrot"}//数组,与,对象嵌套的场景;   (99年,{“id":“HK500",,“cost":, 75.99},, (“hot",,“cold"]], {“k1":“value",,“k2":, (10, 20)}//日期/时间类型定义   (“12:18:29.000000",,“2015 - 07 - 29“,,, 2015 - 07 - 29, 12:18:29.000000"】      ,//JSON_QUOTE 将JSON对象转义成字符串,就是将内部的符,,号进行转义,并整体包裹上双引号;   JSON_QUOTE (& # 39;,“null", & # 39;)//结果,“\“零\““//将JSON内容美化并输出;   JSON_PRETTY ()//可以将JSON/JSON内部的元素转化为其他数据类型;//如下将JSON  jdoc 中的id元素,转化为,unsigned 智力;   (https://dev.mysql.com/doc/refman/8.0/en/json.html json-converting-between-types),,,, (https://dev.mysql.com/doc/refman/8.0/en/json.html # json-converting-between-types)   ORDER  BY 铸(JSON_EXTRACT (jdoc, & # 39; .id& # 39;美元),AS ,,无符号),

合并<代码> JSON> JSON_MERGE_PRESERVE()和JSON_MERGE_PATCH() 实际业务用的可能性很少;

→——在操作符,按照关键找值;区别在于,在会去除包裹的“以及转义符号;它的等价的<代码> 形函数式是<代码> JSON_EXTRACT()

//, {“mascot":“Our  mascot  is  a  dolphin  named  \“Sakila \“!”}   mysql>, SELECT 坳→“.mascot"美元;,得到qt;//结果:|,“Our  mascot  is  a  dolphin  named  \“Sakila \“!”|   和“SELECT 句子→;.mascot"美元;,得到事实;//,结果:|,Our  mascot  is  a  dolphin  named “Sakila"只|

3

JSON路径表达式上面——比;后双引号中的内容就是所谓的JSON路径表达式<代码> ,
该语法是<代码> ECMAScript代码规范的一部分,所以前端程序员应该特别熟悉;

<强>以下面这段JSON为例:

, [3,, {“a": [5, 6],“b":, 10},, (99,, 100))   ,$ [0]=,3,;   ,[1]美元=,{“a": [5, 6],“b":, 10};   ,$ [2]=,(99,,100);

<强>与此同时,美元[1],[2]美元并非标量,进一步

[1]美元.a =, (5、6)   美元[1]。[1],=6   时间=美元[1].b  10;   美元[2][0],=,99;

<强>更进一步支持的语法特性美元[n m]

,美元[1大敌;用2],=,[{“a": [5, 6],“b":, 10},, (99,, 100))   ,美元[last-2 用持续1],=,[3,,{“a": [5, 6],“b":, 10}]

<强>总结一下,

<李>

。*是代表所有的<代码>成员对象> <李>

b[*]是代表所有的<代码>细胞阵列>

MySQL 8.0是不是可以操作JSON