欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中json_extract()函數(shù)的使用實(shí)例

 更新時(shí)間:2022年07月05日 10:08:10   作者:紫夢(mèng)小緣  
這篇文章主要介紹了MySQL中json_extract()函數(shù)的使用實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MySQL中json_extract()函數(shù)的使用

作用:截取數(shù)據(jù)庫中指定字段中存儲(chǔ)的json數(shù)據(jù)中的某個(gè)字段對(duì)應(yīng)的值

要做做什么?(根據(jù)數(shù)據(jù)庫中相關(guān)表字段中存儲(chǔ)的json格式的數(shù)據(jù),然后以SQL語句的形式取出其中指定key對(duì)應(yīng)的值,最終整理匯總為一張視圖供以后的方便使用)

一、初始化

1、初始化表結(jié)構(gòu)

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 '手機(jī)',
  `marriage` char(2) DEFAULT NULL COMMENT '婚姻',
  `marriage_name` varchar(200) DEFAULT NULL COMMENT '婚姻',
  `service_gradation` char(4) DEFAULT NULL COMMENT '服務(wù)等級(jí)',
  `service_gradation_name` varchar(200) DEFAULT NULL COMMENT '服務(wù)等級(jí)',
  `occupation` char(2) DEFAULT NULL COMMENT '職業(yè)',
  `occupation_name` varchar(200) DEFAULT NULL COMMENT '職業(yè)',
  `education` char(2) DEFAULT NULL COMMENT '教育程度',
  `education_name` varchar(200) DEFAULT NULL COMMENT '學(xué)歷',
  `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 '顧客級(jí)別',
  `gradation_name` varchar(200) DEFAULT NULL COMMENT '顧客級(jí)別',
  `register_addr` varchar(200) DEFAULT NULL COMMENT '戶口地址',
  `contact_addr` varchar(200) DEFAULT NULL COMMENT '聯(lián)系地址',
  `address_backup` text COMMENT '地址歸檔',
  `relations_backup` text COMMENT '聯(lián)系人歸檔',
  `allowancetype_backup` text COMMENT '津貼歸檔',
  `medicaltype_backup` text COMMENT '醫(yī)保類型歸檔',
  `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 '手術(shù)史歸檔',
  `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 '創(chuàng)建人',
  `create_time` datetime DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',
  `modify_id` bigint(20) DEFAULT NULL COMMENT '修改人',
  `modify_time` datetime DEFAULT NULL COMMENT '修改時(shí)間',
  `remark` varchar(200) DEFAULT NULL COMMENT '備注',
  `height` varchar(20) DEFAULT NULL COMMENT '身高',
  `weight` varchar(20) DEFAULT NULL COMMENT '體重',
  `identity` varchar(50) DEFAULT NULL COMMENT '身份證號(hào)',
  `telephone` varchar(50) DEFAULT NULL COMMENT '固定電話',
  `service_id` bigint(20) DEFAULT NULL COMMENT '服務(wù)order_id',
  `china_birthday` varchar(50) DEFAULT NULL COMMENT '農(nóng)歷生日',
  `user_service_id` bigint(20) DEFAULT NULL COMMENT '服務(wù)id',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3835 DEFAULT CHARSET=utf8 COMMENT='客戶歷史檔案';

2、插入相關(guān)數(shù)據(jù)

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', '國(guó)家機(jī)關(guān)、黨群組織、企業(yè)、事業(yè)單位負(fù)責(zé)人', '01', '研究生', '01', 'A型', '01', '陰性', NULL, NULL, NULL, NULL, '河南省信陽市平橋區(qū)', '杭州市下城區(qū)西湖文化廣場(chǎng)', 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\":\"國(guó)家定期撫恤補(bǔ)助優(yōu)撫對(duì)象\"}', '{\"isdefault\":\"1\",\"medicalvalue\":\"城鎮(zhèn)職工基本醫(yī)療保險(xiǎn)\"}', NULL, '[]', NULL, '[{\"diseasename\":\"糖尿病\",\"isdefault\":\"1\"},{\"diseasename\":\"冠心病\",\"isdefault\":\"1\"},{\"diseasename\":\"慢性阻塞性肺病\",\"isdefault\":\"1\"}]', NULL, '[]', '[{\"drugname\":\"青霉素\",\"isdefault\":\"1\"},{\"drugname\":\"磺胺\",\"isdefault\":\"1\"}]', '[{\"operationdate\":\"2019-11-01\",\"operationname\":\"腸胃炎手術(shù)\"}]', '[{\"historyname\":\"二次輸血的\",\"modifyId\":225,\"transdate\":\"2019-11-01\"}]', '[{\"historyname\":\"破皮流血\",\"injurydate\":\"2019-11-01\"}]', '[{\"diseasename\":\"糖尿病\",\"isdefault\":\"1\",\"relationtype\":\"01\",\"relationtypeName\":\"父親\"},{\"diseasename\":\"腦卒中\(zhòng)",\"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\":\"結(jié)核病\",\"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);

二、執(zhí)行json_extract()

1、使用json_extract()來處理數(shù)據(jù)

2、使用方式

  • $ . paramsName:取出一個(gè)key對(duì)應(yīng)的value。
  • $ **.paramsName 、$ .[*].paramsName:取出json數(shù)組所有該字段key對(duì)應(yīng)的value并以,的方式拼接在一起

MySql中json_extract函數(shù)的一個(gè)特殊之處

MySql自5.7之后開始支持json類型,相應(yīng)的解析函數(shù)主要是json_extract(與操作符“->”等效)。

不過與其它數(shù)據(jù)庫的類似函數(shù)(如oradle的json_value)相比,當(dāng)json的值是字符類型時(shí),json_extract的結(jié)果略有不同。

在MySql中,是這樣的

而在Oracle中,是這樣的

可見,差別在于MySql的json_extract的返回值會(huì)帶上兩個(gè)雙引號(hào)。

而當(dāng)json的值是數(shù)值型時(shí),沒有差別。

為保持各種情況下的一致,在MySql中要解析json,還需再加上json_unquote函數(shù)以去掉雙引號(hào):

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • win10上如何安裝mysql5.7.16(解壓縮版)

    win10上如何安裝mysql5.7.16(解壓縮版)

    這篇文章主要介紹了win10上如何安裝mysql5.7.16(解壓縮版)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12
  • MySQL外鍵使用詳解

    MySQL外鍵使用詳解

    兩天有人問mysql中如何加外鍵,今天抽時(shí)間總結(jié)一下。mysql中MyISAM和InnoDB存儲(chǔ)引擎都支持外鍵(foreign key),但是MyISAM只能支持語法,卻不能實(shí)際使用。
    2015-03-03
  • Mysql表的約束超詳細(xì)講解

    Mysql表的約束超詳細(xì)講解

    MySQL唯一約束(Unique Key)是指所有記錄中字段的值不能重復(fù)出現(xiàn)。例如,為 id 字段加上唯一性約束后,每條記錄的 id 值都是唯一的,不能出現(xiàn)重復(fù)的情況
    2022-09-09
  • mysql主從數(shù)據(jù)庫不同步的2種解決方法

    mysql主從數(shù)據(jù)庫不同步的2種解決方法

    今天發(fā)現(xiàn)Mysql的主從數(shù)據(jù)庫沒有同步,很是疑惑,于是搜索整理了下,接下來介紹解決方法,有感興趣的朋友可以參考下
    2013-01-01
  • MybatisPlus攔截器如何實(shí)現(xiàn)數(shù)據(jù)表分表

    MybatisPlus攔截器如何實(shí)現(xiàn)數(shù)據(jù)表分表

    為了解決MySQL中大數(shù)據(jù)量的查詢效率問題,采用水平拆分策略,通過取模運(yùn)算確定表后綴,實(shí)現(xiàn)數(shù)據(jù)的有效管理,設(shè)計(jì)分表時(shí),需利用線程變量存取請(qǐng)求參數(shù),并通過攔截器確定操作的具體表名,從而優(yōu)化數(shù)據(jù)處理性能,此方法適用于業(yè)務(wù)表數(shù)據(jù)量大或快速增長(zhǎng)的場(chǎng)景
    2024-11-11
  • 什么是分表和分區(qū) MySql數(shù)據(jù)庫分區(qū)和分表方法

    什么是分表和分區(qū) MySql數(shù)據(jù)庫分區(qū)和分表方法

    這篇文章主要為大家詳細(xì)介紹了MySql數(shù)據(jù)庫分區(qū)和分表方法,告訴大家什么是分表和分區(qū),mysql分表和分區(qū)有什么聯(lián)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 為什么MySQL 使用timestamp可以無視時(shí)區(qū)問題.

    為什么MySQL 使用timestamp可以無視時(shí)區(qū)問題.

    這篇文章主要介紹了為什么MySQL timestamp可以無視時(shí)區(qū)問題,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-12-12
  • 提升MongoDB性能的方法

    提升MongoDB性能的方法

    在本篇文章中我們給大家總結(jié)了提升MongoDB性能的方法以及相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2018-09-09
  • 深入Mysql字符集設(shè)置[精華結(jié)合]

    深入Mysql字符集設(shè)置[精華結(jié)合]

    深入Mysql字符集設(shè)置,建議大家看本文之前先看風(fēng)雪之隅的文章,需要的朋友可以參考下
    2012-07-07
  • MySQL root密碼的重置方法

    MySQL root密碼的重置方法

    這篇文章主要介紹了MySQL root密碼的重置方法,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-04-04

最新評(píng)論