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部署,…

「解密」浪潮云海InCloud Sphere如何霸榜SPECvirt?

近日,SPECvirt_sc2013性能测试的最新结果出炉。浪潮云海虚拟化InCloud Sphere成功刷新Intel两路服务器上虚拟化软件性能测试成绩,不但比之前测试的最高成绩提升39%,更是以4679分打破冰封四年之久的世界纪录,霸榜全球第一。 「一起…

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 冒头至今,已经有无数的勇士在前面探路,阿里、…

php mysql 失败_在php中插入失败的数据mysql

我需要将记录添加到表文字中。正如您在下面的代码中看到的那样,失败会导致消息data insert failed。在php中插入失败的数据mysql我已经试图改变一切,在线论坛建议,但它没有帮助。所有的节目输出是data insert failed,这就是所有。…

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

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

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

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

pyside2 镜像安装_pyside2 镜像安装_【PySide2学习笔记】0_下载安装

1. 安装Python环境:3.7.3从PyPi下载安装:pip install PySide2 # For the latest version on PyPi通过http下载安装:pip install --index-urlhttp://download.qt.io/snapshots/ci/pyside/5.12/latest pyside2 --trusted-host download.qt.io2.…

基于 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…

quercus mysql_让PHP运行在Glassfish中:quercus配置

PHP跟GlassFish本是两个不相干的东西,为什么要让PHP在GlassFish中运行呢?主要是因为对GlassFish情有独钟,却又放不下PHP。跟我这样类似的人应该不少,所以才会出现了Quercus这个东西,它本是Resin的一部分,我…

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

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

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

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

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

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

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

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

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

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

mysql write rows_解析MYSQL BINLOG 二进制格式(5)--WRITE_ROW_EVENT

展开阅读全文原创:转载请说明出处谢谢!上接http://blog.itpub.net/7728585/viewspace-2133188/ 解析MYSQL BINLOG 二进制格式(1)--准备工作http://blog.itpub.net/7728585/viewspace-2133189/ 解析MYSQL BINLOG 二进制格式(2)--FORMAT_DESCRIPTION_EVENT…

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

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