mysql中json的使用方式详解(mysql jsonb)越早知道越好

随心笔谈12个月前发布 admin
92 0



目录一、插入json数据的方式有两种二、查询 JSON 中字段的数据三、JSON字段的条件搜索

mysql字段的数据类型支持json格式,可以直接存储json数组和json对象。

1、以普通字符串形式插入,需要遵循 json 格式

2、用 内置函数(JSON_OBJECT和JSON_ARRAY)创建JSON数据再插入

1、column -> ‘path’ 和 JSON_EXTRACT(column, ‘path’)形式访问指定字段的具体数据。(*注意path外面都要用单引号包起来)

其中 column 表示要查询的数据字段列名;

path 为 JSON 数据的访问路径,path格式为 $.path 或 $[idx]。

$.path 用于 JSON对象类型数据;

$[idx] 用于 JSON数组类型数据;

$ 代表整个 JSON 数据的 root 节点;

path 为访问字段 key,如果字段名包含空格,则需要用双引号包住,如 $.”nick name”;(*注意中文字段名也需要双引号包住)

[idx] 是数组的索引。

2、 和JSON_EXTRACT查询到的字段字符串类型还会有个双引号,还需要做一层处理,可以使用  去除,且转义符也会去除。

JSON_UNQUOTE(JSON_EXTRACT(column, path)) 等价于 column->>path

3、多级查询的方式有两种:

① column -> ‘$.key.childKey’   path点号连接子集字段的方式访问

② JSON_EXTRACT(JSON_EXTRACT(column, path), path)  JSON_EXTRACT嵌套的方式

③column->’$[*].key’  可以查询json数组所有key,返回数组

1、精确查询json类型字段

where column-> ‘$.key’=value

2、模糊查询JsonArray类型字段

where column->’$[*].key’ like ‘%value%’

3、精确查询JsonArray类型字段

where JSON_CONTAINS(column,JSON_OBJECT(‘key’, “value”))

4、多层级关系,模糊查询所有的

where column->’$**.key’ like ‘%value%’

四、JSON字段的更新操作 1、更新字段

JSON_SET(column, path, val[, path, val] …) 更新或插入

JSON_REPLACE(column, path, val[, path, val] …) 只更新

2、新增字段

JSON_INSERT(column, path, val[, path, val] …) 插入新字段,不会改变已经存在的

3、删除字段

JSON_REMOVE(column, path[, path] …) 删除字段

到此这篇关于mysql中json的使用的文章就介绍到这了,更多相关mysql中json使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:mysql 如何使用JSON_EXTRACT() 取json值MySQL中json_extract()函数的使用实例mysql8.0 JSON_CONTAINS的使用说明MySQL5.7 JSON类型使用详解Mysql5.7中JSON操作函数使用说明

© 版权声明

相关文章