最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

mysql(5.6及以下)解析json的方法实例详解

来源:懂视网 责编:小采 时间:2020-11-09 21:12:52
文档

mysql(5.6及以下)解析json的方法实例详解

mysql(5.6及以下)解析json的方法实例详解:mysql(5.6及以下)解析json #json解析函数 DELIMITER $$ DROP FUNCTION IF EXISTS `json_extract_c`$$ CREATE FUNCTION `json_extract_c`( details TEXT, required_field VARCHAR (255) ) RETURNS
推荐度:
导读mysql(5.6及以下)解析json的方法实例详解:mysql(5.6及以下)解析json #json解析函数 DELIMITER $$ DROP FUNCTION IF EXISTS `json_extract_c`$$ CREATE FUNCTION `json_extract_c`( details TEXT, required_field VARCHAR (255) ) RETURNS

mysql(5.6及以下)解析json

#json解析函数 
DELIMITER $$
DROP FUNCTION IF EXISTS `json_extract_c`$$
CREATE FUNCTION `json_extract_c`(
details TEXT,
required_field VARCHAR (255)
) RETURNS TEXT CHARSET latin1
BEGIN
SET details = SUBSTRING_INDEX(details, "{", -1);
SET details = SUBSTRING_INDEX(details, "}", 1);
RETURN TRIM(
 BOTH '"' FROM SUBSTRING_INDEX(
 SUBSTRING_INDEX(
 SUBSTRING_INDEX(
 details,
 CONCAT(
'"',
 SUBSTRING_INDEX(required_field,'$.', -1),
'":'
 ),
-1
 ),
',"',
1
 ),
':',
-1
 )
) ;
END$$
DELIMITER ;
example:
select json_extract_c(json, "$.totalDays"), json from item limit 100;

自测

CREATE TABLE `json_test` (
 `id` int(11) DEFAULT NULL,
 `person_desc` text COLLATE utf8mb4_unicode_ci
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
insert INTO json_test values(2,'{"firstName":"Sergei","lastName":"Rachmaninoff","instrument":"piano"}');
SELECT id,json_extract_c(person_desc,'$.lastName') as "keys" FROM json_test;

 改进,再找不到key,返回''值,之前的是在找不到的情况下,查找到第一的值。

CREATE DEFINER=`zhangfen`@`%` FUNCTION `json_extract_c`(
details TEXT,
required_field VARCHAR (255)
) RETURNS text CHARSET latin1
BEGIN
SET details = SUBSTRING_INDEX(details, "{", -1);
SET details = SUBSTRING_INDEX(details, "}", 1);
RETURN TRIM(
 BOTH '"' FROM SUBSTRING_INDEX(
 SUBSTRING_INDEX(
 SUBSTRING_INDEX(
 CONCAT('"":"",',details),
 CONCAT(
 '"',
 SUBSTRING_INDEX(required_field,'$.', -1),
 '":'
 ),
 -1
 ),
 ',"',
 1
 ),
 ':',
 -1
 )
) ;
END

总结

以上所述是小编给大家介绍的mysql(5.6及以下)解析json的方法实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

您可能感兴趣的文章:

  • android+json+php+mysql实现用户反馈功能方法解析
  • Python3实现将本地JSON大数据文件写入MySQL数据库的方法
  • MySQL操作之JSON数据类型操作详解
  • MySQL5.7 JSON类型使用详解
  • mysql5.6及以下版本如何查询数据库里的json
  • 简单谈谈MySQL5.7 JSON格式检索
  • 详解Mysql中的JSON系列操作函数
  • 声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    mysql(5.6及以下)解析json的方法实例详解

    mysql(5.6及以下)解析json的方法实例详解:mysql(5.6及以下)解析json #json解析函数 DELIMITER $$ DROP FUNCTION IF EXISTS `json_extract_c`$$ CREATE FUNCTION `json_extract_c`( details TEXT, required_field VARCHAR (255) ) RETURNS
    推荐度:
    标签: mysql json 5.6
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top