我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL中json_extract()函数的使用实例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL中json_extract()函数的使用实例

MySQL中json_extract()函数的使用

作用:截取数据库中指定字段中存储的json数据中的某个字段对应的值

要做做什么?(根据数据库中相关表字段中存储的json格式的数据,然后以SQL语句的形式取出其中指定key对应的值,最终整理汇总为一张视图供以后的方便使用)

一、初始化

1、初始化表结构

CREATE TABLE `cus_history` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `customer_id` bigint(20) NOT NULL COMMENT '客户id',
  `name` varchar(20) NOT NULL COMMENT '姓名',
  `sex` char(2) DEFAULT NULL COMMENT '性别',
  `sex_name` varchar(200) DEFAULT NULL COMMENT '性别',
  `birthday` date DEFAULT NULL COMMENT '出生日期',
  `birtydaytype` char(2) DEFAULT NULL COMMENT '出生日期类型',
  `birtydaytype_name` varchar(200) DEFAULT NULL COMMENT '生日类型',
  `age` varchar(20) DEFAULT NULL COMMENT '年龄',
  `nation` char(2) DEFAULT NULL COMMENT '民族',
  `nation_name` varchar(200) DEFAULT NULL COMMENT '民族',
  `religion` char(2) DEFAULT NULL COMMENT '宗教',
  `religion_name` varchar(200) DEFAULT NULL COMMENT '宗教',
  `phone` varchar(20) DEFAULT NULL COMMENT '手机',
  `marriage` char(2) DEFAULT NULL COMMENT '婚姻',
  `marriage_name` varchar(200) DEFAULT NULL COMMENT '婚姻',
  `service_gradation` char(4) DEFAULT NULL COMMENT '服务等级',
  `service_gradation_name` varchar(200) DEFAULT NULL COMMENT '服务等级',
  `occupation` char(2) DEFAULT NULL COMMENT '职业',
  `occupation_name` varchar(200) DEFAULT NULL COMMENT '职业',
  `education` char(2) DEFAULT NULL COMMENT '教育程度',
  `education_name` varchar(200) DEFAULT NULL COMMENT '学历',
  `blood` char(2) DEFAULT NULL COMMENT '血型',
  `blood_name` varchar(200) DEFAULT NULL COMMENT '血型',
  `blood_rh` char(2) DEFAULT NULL COMMENT 'rh血型',
  `blood_rh_name` varchar(200) DEFAULT NULL COMMENT 'rh血型',
  `kind` char(2) DEFAULT NULL COMMENT '顾客类型',
  `kind_name` varchar(200) DEFAULT NULL COMMENT '顾客类型',
  `gradation` char(2) DEFAULT NULL COMMENT '顾客级别',
  `gradation_name` varchar(200) DEFAULT NULL COMMENT '顾客级别',
  `register_addr` varchar(200) DEFAULT NULL COMMENT '户口地址',
  `contact_addr` varchar(200) DEFAULT NULL COMMENT '联系地址',
  `address_backup` text COMMENT '地址归档',
  `relations_backup` text COMMENT '联系人归档',
  `allowancetype_backup` text COMMENT '津贴归档',
  `medicaltype_backup` text COMMENT '医保类型归档',
  `deformitytype_backup_json` json DEFAULT NULL,
  `deformitytype_backup` text COMMENT '残疾类型归档',
  `history_disease_backup_json` json DEFAULT NULL,
  `history_disease_backup` text COMMENT '疾病史归档',
  `history_drug_backup_json` json DEFAULT NULL,
  `history_drug_backup` text COMMENT '用药史归档',
  `history_allergy_backup` text COMMENT '过敏史归档',
  `history_operation_backup` text COMMENT '手术史归档',
  `history_bloodtrans_backup` text COMMENT '输血史归档',
  `history_injury_backup` text COMMENT '外伤史归档',
  `history_familydisease_backup` text COMMENT '家族疾病史归档',
  `history_geneticdisease_backup` text COMMENT '遗传史归档',
  `isvalid` char(1) NOT NULL DEFAULT '1' COMMENT '是否可用',
  `sts` char(1) NOT NULL DEFAULT '1' COMMENT '是否删除',
  `create_id` bigint(20) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `modify_id` bigint(20) DEFAULT NULL COMMENT '修改人',
  `modify_time` datetime DEFAULT NULL COMMENT '修改时间',
  `remark` varchar(200) DEFAULT NULL COMMENT '备注',
  `height` varchar(20) DEFAULT NULL COMMENT '身高',
  `weight` varchar(20) DEFAULT NULL COMMENT '体重',
  `identity` varchar(50) DEFAULT NULL COMMENT '身份证号',
  `telephone` varchar(50) DEFAULT NULL COMMENT '固定电话',
  `service_id` bigint(20) DEFAULT NULL COMMENT '服务order_id',
  `china_birthday` varchar(50) DEFAULT NULL COMMENT '农历生日',
  `user_service_id` bigint(20) DEFAULT NULL COMMENT '服务id',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3835 DEFAULT CHARSET=utf8 COMMENT='客户历史档案';

2、插入相关数据

INSERT INTO `guns_uts_hs`.`cus_history`(`id`, `customer_id`, `name`, `sex`, `sex_name`, `birthday`, `birtydaytype`, `birtydaytype_name`, `age`, `nation`, `nation_name`, `religion`, `religion_name`, `phone`, `marriage`, `marriage_name`, `service_gradation`, `service_gradation_name`, `occupation`, `occupation_name`, `education`, `education_name`, `blood`, `blood_name`, `blood_rh`, `blood_rh_name`, `kind`, `kind_name`, `gradation`, `gradation_name`, `register_addr`, `contact_addr`, `address_backup`, `relations_backup`, `allowancetype_backup`, `medicaltype_backup`, `deformitytype_backup_json`, `deformitytype_backup`, `history_disease_backup_json`, `history_disease_backup`, `history_drug_backup_json`, `history_drug_backup`, `history_allergy_backup`, `history_operation_backup`, `history_bloodtrans_backup`, `history_injury_backup`, `history_familydisease_backup`, `history_geneticdisease_backup`, `isvalid`, `sts`, `create_id`, `create_time`, `modify_id`, `modify_time`, `remark`, `height`, `weight`, `identity`, `telephone`, `service_id`, `china_birthday`, `user_service_id`) VALUES (3832, 53543, 'Object', '01', '男', '2017-09-02', '02', '阳历', '2', '01', '汉族', '03', '佛教', '18595921011', '01', '已婚', '1000', '轻度依赖', '01', '国家机关、党群组织、企业、事业单位负责人', '01', '研究生', '01', 'A型', '01', '阴性', NULL, NULL, NULL, NULL, '河南省信阳市平桥区', '杭州市下城区西湖文化广场', NULL, '[{\"contactnumber\":\"18598961010\",\"name\":\"小黑\",\"relationtype\":\"06\",\"relationtypeName\":\"弟弟\",\"remark\":\"0\"},{\"contactnumber\":\"18598971010\",\"name\":\"小白\",\"relationtype\":\"05\",\"relationtypeName\":\"哥哥\",\"remark\":\"0\"},{\"contactnumber\":\"18597981010\",\"name\":\"小明\",\"relationtype\":\"09\",\"relationtypeName\":\"儿子\",\"remark\":\"1\"}]', '{\"allowance\":\"01\",\"allowanceName\":\"国家定期抚恤补助优抚对象\"}', '{\"isdefault\":\"1\",\"medicalvalue\":\"城镇职工基本医疗保险\"}', NULL, '[]', NULL, '[{\"diseasename\":\"糖尿病\",\"isdefault\":\"1\"},{\"diseasename\":\"冠心病\",\"isdefault\":\"1\"},{\"diseasename\":\"慢性阻塞性肺病\",\"isdefault\":\"1\"}]', NULL, '[]', '[{\"drugname\":\"青霉素\",\"isdefault\":\"1\"},{\"drugname\":\"磺胺\",\"isdefault\":\"1\"}]', '[{\"operationdate\":\"2019-11-01\",\"operationname\":\"肠胃炎手术\"}]', '[{\"historyname\":\"二次输血的\",\"modifyId\":225,\"transdate\":\"2019-11-01\"}]', '[{\"historyname\":\"破皮流血\",\"injurydate\":\"2019-11-01\"}]', '[{\"diseasename\":\"糖尿病\",\"isdefault\":\"1\",\"relationtype\":\"01\",\"relationtypeName\":\"父亲\"},{\"diseasename\":\"脑卒中\",\"isdefault\":\"1\",\"relationtype\":\"01\",\"relationtypeName\":\"父亲\"},{\"diseasename\":\"冠心病\",\"isdefault\":\"1\",\"relationtype\":\"02\",\"relationtypeName\":\"母亲\"},{\"diseasename\":\"慢性阻塞性肺病\",\"isdefault\":\"1\",\"relationtype\":\"02\",\"relationtypeName\":\"母亲\"},{\"diseasename\":\"慢性阻塞性肺病\",\"isdefault\":\"1\",\"relationtype\":\"03\",\"relationtypeName\":\"兄弟姐妹\"},{\"diseasename\":\"恶性肿瘤\",\"isdefault\":\"1\",\"relationtype\":\"03\",\"relationtypeName\":\"兄弟姐妹\"},{\"diseasename\":\"肝炎\",\"isdefault\":\"1\",\"relationtype\":\"04\",\"relationtypeName\":\"子女\"},{\"diseasename\":\"结核病\",\"isdefault\":\"1\",\"relationtype\":\"04\",\"relationtypeName\":\"子女\"}]', '[{\"createTime\":\"2019-11-02\",\"diseasename\":\"开心病\",\"index\":1}]', '1', '1', 225, '2019-11-02 11:31:15', 225, '2019-11-02 11:31:15', NULL, '', '', '000000201709020012', NULL, 254790, '2017年七月十二', 40558);

二、执行json_extract()

1、使用json_extract()来处理数据

MySQL中json_extract()函数的使用实例

2、使用方式

  • $ . paramsName:取出一个key对应的value。
  • $ **.paramsName$ .[*].paramsName:取出json数组所有该字段key对应的value并以,的方式拼接在一起

MySql中json_extract函数的一个特殊之处

MySql自5.7之后开始支持json类型,相应的解析函数主要是json_extract(与操作符“->”等效)。

不过与其它数据库的类似函数(如oradle的json_value)相比,当json的值是字符类型时,json_extract的结果略有不同。

在MySql中,是这样的

MySQL中json_extract()函数的使用实例

而在Oracle中,是这样的

MySQL中json_extract()函数的使用实例

可见,差别在于MySql的json_extract的返回值会带上两个双引号。

而当json的值是数值型时,没有差别。

MySQL中json_extract()函数的使用实例

为保持各种情况下的一致,在MySql中要解析json,还需再加上json_unquote函数以去掉双引号:

MySQL中json_extract()函数的使用实例

json_unquote(json_extract())的等效操作符是“->>”。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL中json_extract()函数的使用实例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL中json_extract()函数的使用实例

目录mysql中json_extract()函数的使用一、初始化二、执行json_extract()MySql中json_extract函数的一个特殊之处在MySql中,是这样的而在Oracle中,是这样的MySQL中json_extrac
2022-07-05

mysql中json_extract的使用方法实例详解

目录一、前言二、创建示例表三、基本语法- 获取jsON对象中某个key对应的value值- 获取JSON数组中某个元素- 获取JSON中的嵌套数据四、渐入佳境- 获取JSON多个路径的数据- 路径表达式*的使用- 返回NULL值- 返回错误
2023-04-13

mysql中的json_extract怎么使用

这篇文章主要介绍“mysql中的json_extract怎么使用”,在日常操作中,相信很多人在mysql中的json_extract怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql中的json
2023-07-06

MySql中怎么使用json_extract函数处理json字段

这篇“MySql中怎么使用json_extract函数处理json字段”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySq
2023-06-30

mysql中json_extract的使用方法

文章目录 一、前言二、创建示例表三、基本语法- 获取JSON对象中某个key对应的value值- 获取JSON数组中某个元素- 获取JSON中的嵌套数据 四、渐入佳境- 获取JSON多个路径的数据- 路径表达式*的使用- 返回
2023-08-17

关于mysql中的json解析函数JSON_EXTRACT

目录mysql json解析函数JSON_EXTRACT例子mysql5.7 json格式与json_extract方法数据初始化select语句返回结果解析用法解析mysql json解析函数JSON_EXTRACTMYSQl自带的解析
2022-07-05

MySQL中sum函数使用的实例教程

文章简介今天分享一下MySQL中的sum函数使用。该函数已经成为大家操作MySQL数据库中时常用到的一个函数,这个函数统计满足条件行中指定列的和,想必肯定大家都知道了,本身就没什么讲头了,这篇文章主要是通过几个小案例深入了解一下该函数,以及
2022-05-13

MYSQL函数使用实例分析

这篇“MYSQL函数使用实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MYSQL函数使用实例分析”文章吧。MYSQL
2023-06-30

MySQL中substr函数使用方法实例详解

目录前言1. SUBSTR 函数简介2. SUBSTR 函数的基本语法3. SUBSTR 函数的使用示例3.1 提取子字符串3.2 从特定位置开始提取3.3 提取特定长度的子字符串3.4 在实际应用中的示例示例 1:从电子邮件地址中提取域名
MySQL中substr函数使用方法实例详解
2024-08-09

python中的eval函数使用实例

eval()函数用来执行一个字符串表达式,并返回表达式的值,这篇文章主要介绍了python中的eval函数,需要的朋友可以参考下
2022-11-13

MySQL日期函数的使用示例

这篇文章主要为大家展示了“MySQL日期函数的使用示例”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL日期函数的使用示例”这篇文章吧。日期函数1、CURDATE()/CURRENT_DA
2023-06-03

openaicreateChatCompletion函数使用实例

这篇文章主要为大家介绍了openaicreateChatCompletion函数使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-19

mysql求和函数使用示例

求和函数在某些有计算的情况下会使用到,在本将为大家介绍下mysql中时如何实现求和的,感兴趣的朋友可以参考下,希望对大家有所帮助
2022-11-15

MySQL中LAG()函数和LEAD()函数的使用

目录一、窗口函数的基本用法二、LAG()和LEAD()函数介绍三、数据准备(建表sql在最后)四、建表数据sql一、窗口函数的基本用法从mysql8之后才开始支持窗口函数 OVER ([PARTITION BY <用于分组的
2022-08-12

编程热搜

目录