mysql中json的使用方式详解

 更新时间:2023年04月23日 09:05:19   作者:半桶水专家  
这篇文章主要介绍了mysql中json的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

一、插入json数据的方式有两种

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

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

二、查询 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_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,返回数组

三、JSON字段的条件搜索

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 InnoDB MRR优化指南

    MySQL InnoDB MRR优化指南

    这篇文章主要给大家介绍了关于MySQL InnoDB MRR优化的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • mysql一键安装教程 mysql5.1.45全自动安装(编译安装)

    mysql一键安装教程 mysql5.1.45全自动安装(编译安装)

    这篇文章主要介绍了mysql一键安装教程,一键安装MySQL5.1.45,全自动安装MySQL SHELL程序,实现编译安装,感兴趣的
    2016-06-06
  • MySQL IS NULL空值查询的实现

    MySQL IS NULL空值查询的实现

    MySQL 提供了 IS NULL 关键字,用来判断字段的值是否为空值,本文主要介绍了MySQL IS NULL空值查询的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • 数据库面试必备之MySQL中的乐观锁与悲观锁

    数据库面试必备之MySQL中的乐观锁与悲观锁

    这篇文章主要介绍了数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数据一致性要求极高的场景,通过加锁确保数据一致,需要的朋友可以参考下
    2025-04-04
  • PHP定时备份MySQL与mysqldump语法参数详解

    PHP定时备份MySQL与mysqldump语法参数详解

    本文为大家介绍了PHP利用mysqldump命令定时备份MySQL与mysqldump语法参数大全以及定时备份的PHP实例代码
    2018-10-10
  • MySQL5.7 group by新特性报错1055的解决办法

    MySQL5.7 group by新特性报错1055的解决办法

    项目中本来使用的是mysql5.6进行开发,切换到5.7之后,突然发现原来的一些sql运行都报错,错误编码1055,错误信息和sql_mode中的“only_full_group_by“有关。下面小编给大家分享下解决办法
    2016-12-12
  • MySQL日志系统详细资料分享

    MySQL日志系统详细资料分享

    本文给大家汇总介绍了一下MySQL中的日志系统的详细资料,非常的细致,有需要的小伙伴可以参考下
    2017-02-02
  • mysql jdbc连接步骤及常见参数

    mysql jdbc连接步骤及常见参数

    这篇文章主要介绍了mysql jdbc连接步骤及常见参数,需要的朋友可以参考下
    2015-09-09
  • 自用mysql自带命令实现数据库备份还原的方法

    自用mysql自带命令实现数据库备份还原的方法

    本文章介绍了都是mysql常用的命令一些数据导入导出的命令了,只要我们撑握这些命令就可以方法快速的给我们的数据库进行备份还原了
    2012-04-04
  • mysql百万数据表加索引优化的方法

    mysql百万数据表加索引优化的方法

    在大数据时代,随着数据量的快速增长,对数据库的索引优化变得尤为重要,本文主要介绍了mysql百万数据表加索引优化的方法,感兴趣的可以了解一下
    2024-02-02

最新评论