创建表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类型的使用方法相关推荐

  1. win7中iis7.5中没有http绑定类型的解决方法

    再打开控制面板 程序和功能 打开和关闭window功能 就会打开Windows功能窗口, 找到Internet信息服务, 将Internet信息服务前面的加号点开, 找到web管理工具, 选中IIS管 ...

  2. windows mysql is read only_mysql中Table is read only错误解决方法(转载)

    下面来给各位同学介绍一下关于mysql中Table is read only的解决技巧,希望例子能帮助到各位. 今天再我把数据库data 拷贝到linux 下运行程序 "mysql中Tabl ...

  3. mysql numeric 区别_Mysql中NUMERIC和DECIMAL类型区别比较

    decimal(numeric ) 同义,用于精确存储数值 . decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边.decimal 数据类型存储了一个准确(精确)的数字表 ...

  4. mysql 删除check_数据库中五种check约束添加/删除方法

    创建一个实例 令有一个c表c(cno,--) create table student ( sno int, cno int, ID char(100), sname char(100), sage ...

  5. 对于数据库中表示状态或类型字段表示方法的思考

    在设计数据库的时候,经常碰到那些表示状态或类型的字段,比如订单的状态,或者支付的类型.要为这一类数据选择合适的数据类型,比较常用的有以下两种方法. 方法一:tinyint+byte(枚举) 数据库中类 ...

  6. json mysql 字段 默认值_MySQL中的JSON类型

    前言(废话) 昨天抽了点时间在网上搜列了一个开源项目,项目挺完整的,前后台分离还带有微信小程序,我Clone下代码,经过一番倒腾,嘿~还真就跑起来了.在这个过程中,体验了一把VUE项目工程细节,因为之 ...

  7. 搜集《ASP.NET中常用的26个优化性能方法》

    1. 数据库访问性能优化 a.数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接 ...

  8. ASP.NET中常用的26个优化性能方法(转)

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...

  9. android build获取ext,android – 如何在Gradle中获取当前构建类型

    我的问题非常直接且易于理解. 题 在Gradle中,有什么办法可以在运行时获取当前的构建类型.例如,在运行assembleDebug任务时,build.gradle文件中的任务是否可以根据此任务与调试 ...

最新文章

  1. 十八岁华裔天才携手「量子计算先驱」再次颠覆量子计算
  2. python2基础教程廖雪峰云-Python 基础教程
  3. Tengine的Linux下安装和启动
  4. SAP 电商云 Spartacus UI Angular Component 动态创建的单步调试
  5. 计算机硬盘共享配额,Win10磁盘配额是什么,怎么用?
  6. 虚拟机和linux系统整理??
  7. macOS Monterey中最新的「通用控制」是什么?苹果设备如何使用通用控制功能!
  8. centos7恢复mysql数据库_MySQL数据库之Centos7.3,mysql5.7环境,数据存储空间加大调整方案...
  9. 物业费管理系统c语言作业,c语言物业管理系统.doc
  10. 小米路由器的linux命令,小米路由器pro安装mt工具箱
  11. Ubuntu安装OpenRasp后台管理
  12. CAD工具——图纸剪切
  13. HIT-SC-Lab1 Convex Hull的算法实现(JAVA)
  14. 从Spring源码探究AOP代码织入的过程
  15. iqooneo3支持鸿蒙系统吗,iQOO Neo3搭载144Hz竞速屏:支持全局自适应刷新率
  16. RAS - Reliability, Availability and Serviceability
  17. oracle 无法在指定的节点上,oracle 11g rac 某节点CRS起不来的解决方法
  18. 基于爱奇艺HCDN视频分发网络的开放缓存
  19. Matlab Shannon编码
  20. python中 [ ] 的使用方法

热门文章

  1. model1模式变为mv模式,实现业务逻辑和画面的分离
  2. 《javascript设计模式》笔记之第七章:工厂模式
  3. webservice-概念性学习(一)
  4. 输入带空格字符串的两种方法
  5. python自学多久可以找到工作-零基础如何自学Python并且找到工作,其实也就这3点,4点...
  6. python能做自动化吗-Python自动化 作为代码小白,我是这样成为自动化大神的!...
  7. python编程从入门到精通 叶维忠 pdf-叶维忠《Python编程从入门到精通》PDF
  8. 零基础自学python的app-零基础入门免费学Python 课程和APP推荐
  9. python恶搞表情包-Python开发个人专属表情包网站,表情在手,天下我有
  10. python利器的使用-Python数据科学利器