mysql的json函数与实例_Mysql实例详解Mysql中的JSON系列操作函数

《Mysql实例详解Mysql中的JSON系列操作函数》要点:

本文介绍了Mysql实例详解Mysql中的JSON系列操作函数,希望对您有用。如果有疑问,可以联系我们。

MYSQL必读前言

MYSQL必读JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写.对机器来说易于解析和生成,并且会减少网络带宽的传输.

MYSQL必读JSON的格式非常简单:名称/键值.之前MySQL版本里面要实现这样的存储,要么用VARCHAR要么用TEXT大文本. MySQL5.7发布后,专门设计了JSON数据类型以及关于这种类型的检索以及其他函数解析.

MYSQL必读下面一起来实际操作一下.

MYSQL必读创建带有 JSON 字段的表

MYSQL必读比如一个‘文章'表,字段包括

MYSQL必读id、标题 title、标签 tags

MYSQL必读一篇文章会有多个标签,tags 就可以设为 JSON 类型

MYSQL必读建表语句如下:

MYSQL必读

CREATE TABLE `article` (

`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,

`title` varchar(200) NOT NULL,

`tags` json DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB;

MYSQL必读插入数据

MYSQL必读插入一条带有 JSON 内容的数据,执行 insert 语句:

MYSQL必读

INSERT INTO `article` (`title`, `tags`)

VALUES (

'体验 Mysql JSON',

'["Mysql", "Database"]'

);

MYSQL必读这里插入的是一个 JOSN 数组[“Mysql”, “Database”]

MYSQL必读查询 article 表中的所有内容,可以看到新插入的这条数据

MYSQL必读

906b97eed18ecde86c00c84783ca326e.png

MYSQL必读查询

MYSQL必读使用 JSON 函数做两个简单的查询

MYSQL必读1.查找带有标签”Mysql”的所有文章

MYSQL必读

SELECT * FROM `article`

WHERE JSON_CONTAINS(tags, '["Mysql"]');

MYSQL必读2.查找标签中以”Data”开头的文章

MYSQL必读

SELECT * FROM `article`

WHERE JSON_SEARCH(tags, 'one', 'Data%') IS NOT NULL;

MYSQL必读JSON_SEARCH 函数中3个参数的含义:

MYSQL必读1.要查找的文档

MYSQL必读2.查找的范围,有两个选项,'one' 查找第一个符合条件的,'all'查找所有符合条件的

MYSQL必读3.查找的条件

MYSQL必读JSON Path

MYSQL必读JSON Path用来定位文档中的目标字段,例如

MYSQL必读

SELECT JSON_EXTRACT(

'{"id": 1, "name": "mysql"}',

'$.name'

);

MYSQL必读结果为:mysql

MYSQL必读JSON_EXTRACT() 是JSON提取函数,$.name 就是一个 JSON path,表示定位文档的 name 字段

MYSQL必读JSON path 是以 $ 开头,下面看几个更多的示例

MYSQL必读

{

"num": 123,

"arr": [1, 2],

"obj": {

"a": 3,

"b": 4

}

}

$.num //结果:123

$.arr //结果:[1, 2]

$.arr[1] //结果:1

$.obj.a //结果:3

$**.b //结果:4

MYSQL必读使用 JSON path 的查询示例

MYSQL必读

SELECT

tags->"$[0]" as 'tag'

FROM `article`;

MYSQL必读更新数据

MYSQL必读例如想给文章添加一个 “dev” tag,更新的条件是已经包含 “Mysql” 标签,并且还没有 “dev” 标签的数据

MYSQL必读更新语句如下:

MYSQL必读

UPDATE `article`

SET tags = JSON_MERGE(tags, '["dev"]')

WHERE

JSON_SEARCH(tags, 'one', 'dev') IS NULL

AND

JSON_SEARCH(tags, 'one', 'Mysql') IS NOT NULL;

MYSQL必读

ca887c563ce31e0afbfb969f4fb1affc.png

MYSQL必读可以看到成功添加了 “dev” 标签

MYSQL必读再比如想把 “Mysql” 这个标签更新为 “Mysql 5.7.13″,更新语句如下:

MYSQL必读

UPDATE `article` set tags = JSON_SET(tags, ‘$[0]', ‘Mysql 5.7.13') ;

MYSQL必读上面体验了 JSON_MERGE和 JSON_SET,用于修改JSON的函数还有很多,例如:

MYSQL必读

JSON_INSERT(doc, path, val[, path, val]…)

MYSQL必读插入数据

MYSQL必读

JSON_REPLACE(doc, path, val[, path, val]…)

MYSQL必读替换数据

MYSQL必读

JSON_ARRAY_APPEND(doc, path, val[, path, val]…)

MYSQL必读向数组尾部追加数据

MYSQL必读

JSON_REMOVE(doc, path[, path]…)

MYSQL必读从指定位置移除数据

MYSQL必读通过初步的操作体验,感觉 Mysql 的 JSON 操作还是比较顺畅的,以后可以在mysql中使用文档结构确实很方便

MYSQL必读新版的 Mysql 还提供了 Javascript 的控制台,类似 MongoDB 的 shell,也很方便,后面会总结出来.希望本文给大家在学习mysql的时候有所帮助,谢谢对维易PHP的支持.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

256变4096:分库分表扩容如何实现平滑数据迁移?

简介: 本文作者就一个高德打车弹外订单系统进行了一次扩分库分表和数据库迁移。 一、 背景 2020年,笔者负责的一个高德打车弹外订单系统进行了一次扩分库分表和数据库迁移。该订单系统整体部署在阿里云上,服务使用阿里云ECS部署,…

OpenYurt 如何 “0 侵入” 攻破云边融合难点

简介: 随着 5G、IoT、直播、CDN 等行业和业务的发展,越来越多的算力和业务开始下沉到距离数据源或者终端用户更近的位置,以期获得很好的响应时间和成本,这是一种明显区别于传统中心模式的计算方式——边缘计算。 随着 5G、IoT、直…

Python - 深夜数据结构与算法之 Graph

目录 一.引言 二.图的简介 1.Graph 图 2.Undirected graph 无向图 3.Directed Graph 有向图 4.DFS / BFS 遍历 三.经典算法实战 1.Num-Islands [200] 2.Land-Perimeter [463] 3.Largest-Island [827] 四.总结 一.引言 Graph 无论是应用还是算法题目在日常生活中比较…

Docker Desktop宣布收费;腾讯7月已申请注册WECHAT CLOUD商标;MongoDB成为当前最具价值开源软件公司...

NEWS本周新闻回顾Docker Desktop 宣布收费近日 Docker 官方宣布一项新的动作,即将产品订阅划分为个人、专业、团队和商业不同版本。如果企业规模在 250 名员工以上或年收入超过 1000 万美元的公司想要使用 Docker Desktop,那么必须使用付费订阅。付费订阅…

Serverless 2.0,鸡蛋还是银弹?

简介: 本篇旨在介绍 Serverless 如今应用到应用(非病句)的各种困境,以及帮助用户如何去规避一些问题,提前了解方向。 浪潮 从 2014 年 Serverless 冒头至今,已经有无数的勇士在前面探路,阿里、…

基础组件完善的今天,如何通过业务组件提效?

简介: 无论是在前端刀耕火种的 jQuery/YUI 时代,还是到现在基于数据驱动 UI 的 React/Vue 时代,物料/组件一直是前端永恒的话题。基于大量重复逻辑的封装可以很显而易见地提升前端 UI 的构建效率,简单而直接,因此无论技…

​做安全操作系统,这位技术老兵是认真的!

受访者 | 王文东记者 | 伍杏玲出品 | CSDN云计算(ID:CSDNcloud)近年来国际形势变化莫测,基础软件作为建设国家信息系统的核心,其自主研发能力备受关注与热议。作为企业和个人开发者,我们如何打破当前国产基…

基于 Flink SQL 构建流批一体的 ETL 数据集成

简介: 如何利用 Flink SQL 构建流批一体的 ETL 数据集成。 本文整理自云邪、雪尽在 Flink Forward Asia 2020 的分享,该分享以 4 个章节来详细介绍如何利用 Flink SQL 构建流批一体的 ETL 数据集成, 文章的主要内容如下: 数据仓库与数据集成…

入选 SIGMOD2021 的时间序列多周期检测通用框架 RobustPeriod 如何支撑阿里业务场景?

简介: 本文除了介绍RobustPeriod的核心技术亮点,还将重点解释如何将它构筑成服务来解决阿里云的业务痛点。 近日,由阿里云计算平台和阿里云达摩院合作的时序多周期检测相关论文RobustPeriod: Robust Time-Frequency Mining for Multiple Peri…

《新程序员002》图书正式上市! 从“新数据库时代”到“软件定义汽车”

20年前,伴随着互联网打开信息化大门,技术人成为新时代的开拓者。在时代的召唤下,CSDN于2001年推出国内首个面向IT人员的专业杂志——《程序员》,成为一代代开发者的技术启蒙。20年后的今天,人工智能、云计算、大数据等…

Kubernetes 稳定性保障手册 -- 极简版

简介: Kubernetes 在生产环境中的采用率越来越高,复杂度越来越高,由此带来的稳定性保障的挑战越来越大。 Kubernetes 在生产环境中的采用率越来越高,复杂度越来越高,由此带来的稳定性保障的挑战越来越大。 对于基于 K…

收藏!这些IDE使用技巧,你都知道吗

简介: 欲善其事,先利其器。对于研发同学,在日常的开发工作中,我们与之打交道最多的便是编程的IDE。能否高效和灵活的使用IDE,将对我们的工作效率起着举足轻重的作用。 一 、背景 1 、目的 欲善其事,先利其…

做安全操作系统,这位技术老兵是认真的!

受访者 | 王文东 记者 | 伍杏玲 出品 | CSDN云计算(ID:CSDNcloud) 近年来国际形势变化莫测,基础软件作为建设国家信息系统的核心,其自主研发能力备受关注与热议。作为企业和个人开发者,我们如何打破当前…

快手基于 Flink 的持续优化与实践

简介: 快手基于 Flink 的持续优化与实践的介绍。 一、Flink 稳定性持续优化 第一部分是 Flink 稳定性的持续优化。该部分包括两个方面,第一个方面,主要介绍快手在 Flink Kafka Connector 方面做的一些高可用,是基于内部的双机房读…

平台建设的7大问题:蚂蚁AI平台实践深度总结

简介: 在支持蚂蚁几乎所有核心业务运行和发展的过程中,我们在平台建设、业务支持、平台运营、AI创新以及AI整体运营等各个方面做了很多尝试,有了不少的收获和感悟,在此分享给大家。 过去几年,我和团队一直在负责蚂蚁集…

知乎热问:进入内核态究竟是什么意思?

‍‍知乎上有一个问题:进入内核态究竟是什么意思?暂且忘记这个问题,让我们从另一个问题出发,一步步引出这个问题的答案。特权指令问题现代计算机里面,同时运行了很多程序,比如Office软件、浏览器、QQ、还有…

我在阿里云做云开发平台

简介: 你体验过云上的研发模式了没? 各大云厂商今年在开发者阵地侧逐渐开始向“云”化开发发展,最为显著的产品就是Cloud IDE,催生出来的趋势就是云端开发。云开发现阶段尽管在各大公司内部无法作为日常开发工具普遍推广&#xff…

mysql 事务日志备份_事务日志备份与恢复 5

14.5 用Bak文件恢复到故障点的奥秘如果数据库被损坏,我们就只能利用备份集文件(通常扩展名为BAK)来恢复数据库,如果备份集中包含了尾日志备份,我们同样能将数据库恢复到故障点。前面我们已经介绍了使用restore headeronly命令可以查看备份集文…

从no-code到low-code:企业级hpaPaaS的未来

简介: 本文将简单谈一谈基于 no-code > low-code > pro-code 渐进式思路的研发体系。 引子 宜搭负责人骁勇给我举过一个例子,我们小时候逢年过节穿的衣服,都是去裁缝店选一下材料、量一下尺寸,等个半个来月,讨回…

“解救”外卖骑手,美团首次公开算法规则!

整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)相信大家点外卖的时候都会注意到“预估到达时间”这一栏,那你是否好奇过这个时间是怎么得出来的呢?简单用距离除以速度?还是结合送餐距离、出餐时间和天气情况等更多…