mysql新增json_MySQL5.7中新增的JSON类型的使用方法
创建表json_test:
CREATE TABLE json_test(id INT(11) AUTO_INCREMENT PRIMARY KEY,person_desc JSON)ENGINE INNODB;
插入一条记录:
INSERT INTO json_test(person_desc) VALUES ('{
"programmers": [{
"firstName": "Brett",
"lastName": "McLaughlin",
"email": "aaaa"
}, {
"firstName": "Jason",
"lastName": "Hunter",
"email": "bbbb"
}, {
"firstName": "Elliotte",
"lastName": "Harold",
"email": "cccc"
}],
"authors": [{
"firstName": "Isaac",
"lastName": "Asimov",
"genre": "sciencefiction"
}, {
"firstName": "Tad",
"lastName": "Williams",
"genre": "fantasy"
}, {
"firstName": "Frank",
"lastName": "Peretti",
"genre": "christianfiction"
}],
"musicians": [{
"firstName": "Eric",
"lastName": "Clapton",
"instrument": "guitar"
}, {
"firstName": "Sergei",
"lastName": "Rachmaninoff",
"instrument": "piano"
}]
}');
查看插入的这行JSON数据有哪些KEY:
mysql> SELECT id,json_keys(person_desc) as "keys" FROM json_test\G
*************************** 1. row ***************************
id: 1
keys: ["authors", "musicians", "programmers"]
1 row in set (0.00 sec)
可以看到里面有三个KEY,分别为authors,musicians,programmers。那现在找一个KEY把对应的值拿出来:
mysql> SELECT json_extract(AUTHORS,'$.lastName[0]') AS 'name', AUTHORS FROM
-> (
-> SELECT id,json_extract(person_desc,'$.authors[0][0]') AS "authors" FROM json_test
-> UNION ALL
-> SELECT id,json_extract(person_desc,'$.authors[1][0]') AS "authors" FROM json_test
-> UNION ALL
-> SELECT id,json_extract(person_desc,'$.authors[2][0]') AS "authors" FROM json_test
-> ) AS T1
-> ORDER BY NAME DESC\G
*************************** 1. row ***************************
name: "Williams"
AUTHORS: {"genre": "fantasy", "lastName": "Williams", "firstName": "Tad"}
*************************** 2. row ***************************
name: "Peretti"
AUTHORS: {"genre": "christianfiction", "lastName": "Peretti", "firstName": "Frank"}
*************************** 3. row ***************************
name: "Asimov"
AUTHORS: {"genre": "sciencefiction", "lastName": "Asimov", "firstName": "Isaac"}
3 rows in set (0.00 sec)
列出详细值:
mysql> SELECT
-> json_extract(AUTHORS,'$.firstName[0]') AS "firstname",
-> json_extract(AUTHORS,'$.lastName[0]') AS "lastname",
-> json_extract(AUTHORS,'$.genre[0]') AS "genre"
-> FROM
-> (
-> SELECT id,json_extract(person_desc,'$.authors[0]') AS "authors" FROM json
_test
-> ) AS T\G
*************************** 1. row ***************************
firstname: "Isaac"
lastname: "Asimov"
genre: "sciencefiction"
1 row in set (0.00 sec)
删掉authors这个KEY对应的所有对象:
mysql> UPDATE json_test SET person_desc = json_remove(person_desc,'$.authors')\G
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
查找对应的KEY,发现已经被删除掉:
mysql> SELECT json_contains_path(person_desc,'all','$.authors') as authors_exist
s FROM json_test\G
*************************** 1. row ***************************
authors_exists: 0
1 row in set (0.00 sec)
mysql新增json_MySQL5.7中新增的JSON类型的使用方法相关推荐
- win7中iis7.5中没有http绑定类型的解决方法
再打开控制面板 程序和功能 打开和关闭window功能 就会打开Windows功能窗口, 找到Internet信息服务, 将Internet信息服务前面的加号点开, 找到web管理工具, 选中IIS管 ...
- windows mysql is read only_mysql中Table is read only错误解决方法(转载)
下面来给各位同学介绍一下关于mysql中Table is read only的解决技巧,希望例子能帮助到各位. 今天再我把数据库data 拷贝到linux 下运行程序 "mysql中Tabl ...
- mysql numeric 区别_Mysql中NUMERIC和DECIMAL类型区别比较
decimal(numeric ) 同义,用于精确存储数值 . decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边.decimal 数据类型存储了一个准确(精确)的数字表 ...
- mysql 删除check_数据库中五种check约束添加/删除方法
创建一个实例 令有一个c表c(cno,--) create table student ( sno int, cno int, ID char(100), sname char(100), sage ...
- 对于数据库中表示状态或类型字段表示方法的思考
在设计数据库的时候,经常碰到那些表示状态或类型的字段,比如订单的状态,或者支付的类型.要为这一类数据选择合适的数据类型,比较常用的有以下两种方法. 方法一:tinyint+byte(枚举) 数据库中类 ...
- json mysql 字段 默认值_MySQL中的JSON类型
前言(废话) 昨天抽了点时间在网上搜列了一个开源项目,项目挺完整的,前后台分离还带有微信小程序,我Clone下代码,经过一番倒腾,嘿~还真就跑起来了.在这个过程中,体验了一把VUE项目工程细节,因为之 ...
- 搜集《ASP.NET中常用的26个优化性能方法》
1. 数据库访问性能优化 a.数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接 ...
- ASP.NET中常用的26个优化性能方法(转)
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...
- android build获取ext,android – 如何在Gradle中获取当前构建类型
我的问题非常直接且易于理解. 题 在Gradle中,有什么办法可以在运行时获取当前的构建类型.例如,在运行assembleDebug任务时,build.gradle文件中的任务是否可以根据此任务与调试 ...
最新文章
- 十八岁华裔天才携手「量子计算先驱」再次颠覆量子计算
- python2基础教程廖雪峰云-Python 基础教程
- Tengine的Linux下安装和启动
- SAP 电商云 Spartacus UI Angular Component 动态创建的单步调试
- 计算机硬盘共享配额,Win10磁盘配额是什么,怎么用?
- 虚拟机和linux系统整理??
- macOS Monterey中最新的「通用控制」是什么?苹果设备如何使用通用控制功能!
- centos7恢复mysql数据库_MySQL数据库之Centos7.3,mysql5.7环境,数据存储空间加大调整方案...
- 物业费管理系统c语言作业,c语言物业管理系统.doc
- 小米路由器的linux命令,小米路由器pro安装mt工具箱
- Ubuntu安装OpenRasp后台管理
- CAD工具——图纸剪切
- HIT-SC-Lab1 Convex Hull的算法实现(JAVA)
- 从Spring源码探究AOP代码织入的过程
- iqooneo3支持鸿蒙系统吗,iQOO Neo3搭载144Hz竞速屏:支持全局自适应刷新率
- RAS - Reliability, Availability and Serviceability
- oracle 无法在指定的节点上,oracle 11g rac 某节点CRS起不来的解决方法
- 基于爱奇艺HCDN视频分发网络的开放缓存
- Matlab Shannon编码
- python中 [ ] 的使用方法
热门文章
- model1模式变为mv模式,实现业务逻辑和画面的分离
- 《javascript设计模式》笔记之第七章:工厂模式
- webservice-概念性学习(一)
- 输入带空格字符串的两种方法
- python自学多久可以找到工作-零基础如何自学Python并且找到工作,其实也就这3点,4点...
- python能做自动化吗-Python自动化 作为代码小白,我是这样成为自动化大神的!...
- python编程从入门到精通 叶维忠 pdf-叶维忠《Python编程从入门到精通》PDF
- 零基础自学python的app-零基础入门免费学Python 课程和APP推荐
- python恶搞表情包-Python开发个人专属表情包网站,表情在手,天下我有
- python利器的使用-Python数据科学利器