mysql中json的使用方式详解

作者:半桶水专家 时间:2024-01-27 14:39:43 

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] ...) 删除字段

来源:https://blog.csdn.net/jkzyx123/article/details/130240279

标签:mysql,json,使用
0
投稿

猜你喜欢

  • Python批量修改图片分辨率的实例代码

    2023-01-30 01:59:10
  • Linux环境下安装MySQL8.0的完整步骤

    2024-01-22 05:26:47
  • 基于python实现文件加密功能

    2022-02-02 20:28:57
  • Chrome和firefox使用比较测评

    2010-03-26 12:13:00
  • 解决VIM显示utf-8文件乱码问题

    2023-04-30 07:02:14
  • 目前最全的浏览器/CSS选择器兼容性总结(包括Safari 4 beta)

    2009-02-26 15:26:00
  • uwsgi+nginx部署Django项目操作示例

    2021-05-04 02:23:50
  • pandas如何将datetime64[ns]转为字符串日期

    2022-06-28 13:48:37
  • 阿里云服务器新建用户具体方法

    2024-01-22 19:08:51
  • 零基础写python爬虫之urllib2使用指南

    2022-10-17 04:00:44
  • 在windows下Python打印彩色字体的方法

    2023-05-19 07:03:32
  • Go语言入门教程之Arrays、Slices、Maps、Range操作简明总结

    2024-05-09 14:56:40
  • Python爬虫进阶之Beautiful Soup库详解

    2022-09-13 04:38:50
  • 教你为MySQL数据库换挡加速

    2010-03-03 16:58:00
  • pytorch 实现计算 kl散度 F.kl_div()

    2023-04-03 20:16:18
  • Golang 的defer执行规则说明

    2023-07-14 08:31:10
  • 百度“有啊”首页首次曝光 以绿色调为主

    2008-10-20 12:52:00
  • np.ones的使用小结

    2021-05-20 06:55:34
  • vue路由嵌套的SPA实现步骤

    2024-04-28 09:20:04
  • 详解selenium + chromedriver 被反爬的解决方法

    2022-03-20 18:40:46
  • asp之家 网络编程 m.aspxhome.com