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 REVOKE实现删除用户权限

    MySQL REVOKE实现删除用户权限

    在 MySQL 中,可以使用 REVOKE 语句删除某个用户的某些权限,本文就详细的来介绍一下REVOKE 的具体使用方法,感兴趣的可以了解一下
    2021-06-06
  • Mysql更改默认引擎为Innodb的步骤方法

    Mysql更改默认引擎为Innodb的步骤方法

    mysql默认是关闭InnoDB存储引擎的使用的,而Mysql默认引擎是MyISAM,而MyISAM并不支持事务处理,因为最近项目中的需要所以要更换引擎,通过查找网上的资料后解决了,现在将步骤方法分享给大家,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • MySQL报错:The server quit without updating PID file的解决思路与方法

    MySQL报错:The server quit without updating PID file的解决思路

    最近在学习mysql二进制的时候遇到了个报错,解决分享给大家,这篇文章主要给大家介绍了关于MySQL报错:The server quit without updating PID file的解决思路与方法,需要的朋友可以参考下
    2023-02-02
  • 深入解析MySQL 事务

    深入解析MySQL 事务

    这篇文章主要给大家分享的是mysql事务解析,事务(transaction)是业务逻辑的一个基本的单元组成,下面文章围绕mysql事务的相关资料展开详细内容,需要的朋友可以参考一下希望对大家有所帮助
    2022-01-01
  • MySQL索引与事务定义到使用详解

    MySQL索引与事务定义到使用详解

    这篇文章主要介绍了MySQL数据库索引事务,索引是为了加速对表中数据行的检索而创建的一种分散的存储结;事物是属于计算机中一个很广泛的概念,一般是指要做的或所做的事情,下面我们就一起进入文章了解具体内容吧
    2022-12-12
  • 阿里云centos7中安装MySQL8.0.13的方法步骤

    阿里云centos7中安装MySQL8.0.13的方法步骤

    这篇文章主要介绍了阿里云centos7中安装MySQL8.0.13的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • MySQL 全文索引使用指南

    MySQL 全文索引使用指南

    在 MySQL 中,我们经常使用 WHERE 条件用于进行值的相等比较、范围过滤。然而,我们也会使用关键字进行搜索,这个基于搜索值与其他值的相关性来进行过滤。MySQL全文检索即用于这种场景。本篇将介绍如何使用全文检索。
    2021-05-05
  • 如何使用MySQL查询一年中每月的记录数

    如何使用MySQL查询一年中每月的记录数

    这篇文章主要给大家介绍了关于如何使用MySQL查询一年中每月的记录数的相关资料,文中通过实例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-09-09
  • MySQL5.73 root用户密码修改方法及ERROR 1193、ERROR1819与ERROR1290报错解决

    MySQL5.73 root用户密码修改方法及ERROR 1193、ERROR1819与ERROR1290报错解决

    这篇文章主要给大家介绍了关于MySQL5.73 root用户密码修改方法及ERROR 1193、ERROR1819与ERROR1290:... running with --skip-...报错的解决方法,文中通过图文将解决的步骤介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • MySQL5.5.27安装图文教程

    MySQL5.5.27安装图文教程

    本文通过图文并茂的形式给大家介绍了mysql 5.5.27的安装教程,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-09-09

最新评论