小工具      在线工具  汉语词典  css  js  c++  java

mysql5.7之json格式与json_extract方法使用

Java,json 额外说明

收录于:42天前

数据初始化

json_test 表数据、id 和 jsonstr 字段(类型 json)

{
    "no": "7",
    "title": "运动方式",
    "content": [{
        "text": "您平时经常进行的运动及时间",
        "item1": [{
            "text": "慢跑 / 快走 / 走跑结合",
            "type": "select",
            "value": "selected"
        }, {
            "text": "上下楼梯 / 爬山",
            "type": "multselect",
            "value": "selected"
        }],
        "item2": [{
            "text": "慢跑222走跑结合",
            "type": "text",
            "value": "慢跑2"
        }, {
            "text": "上下楼梯 / 爬山2",
            "type": "number",
            "value": "33"
        }]
    }]
}

选择语句

SELECT
    id,
    json_extract( t.jsonstr, '$.*' ),
    json_extract( t.jsonstr, '$.title' ) AS "title",
    json_extract( t.jsonstr, '$.content' ) AS "content" ,
    json_extract( t.jsonstr, '$**.text' ) AS "text" ,
    json_extract( t.jsonstr, '$.content[*].item1[*]' ) AS "item1" 
FROM
    json_test t;

返回结果分析

//json_extract( t.jsonstr, '$.*' )返回:
["7", "运动方式", [{"text": "您平时经常进行的运动及时间", "item1": [{"text": "慢跑 / 快走 / 走跑结合", "type": "select", "value": "selected"}, {"text": "上下楼梯 / 爬山", "type": "multselect", "value": "selected"}], "item2": [{"text": "慢跑222走跑结合", "type": "text", "value": "慢跑2"}, {"text": "上下楼梯 / 爬山2", "type": "number", "value": "33"}]}]]

//json_extract( t.jsonstr, '$.title' ) AS "title"返回:
"运动方式"

//json_extract( t.jsonstr, '$.content' ) AS "content" 返回:
[{"text": "您平时经常进行的运动及时间", "item1": [{"text": "慢跑 / 快走 / 走跑结合", "type": "select", "value": "selected"}, {"text": "上下楼梯 / 爬山", "type": "multselect", "value": "selected"}], "item2": [{"text": "慢跑222走跑结合", "type": "text", "value": "慢跑2"}, {"text": "上下楼梯 / 爬山2", "type": "number", "value": "33"}]}]

//json_extract( t.jsonstr, '$**.text' ) AS "text" 返回:
["您平时经常进行的运动及时间", "慢跑 / 快走 / 走跑结合", "上下楼梯 / 爬山", "慢跑222走跑结合", "上下楼梯 / 爬山2"]

//json_extract( t.jsonstr, '$.content[*].item1[*]' ) AS "item1" 返回:
[{"text": "慢跑 / 快走 / 走跑结合", "type": "select", "value": "selected"}, {"text": "上下楼梯 / 爬山", "type": "multselect", "value": "selected"}]

用法解析
‘$.*’    返回全部json
‘$.title’    返回key=”title”的数据
‘$**.text’    返回所有最底层key=”text”的数据
‘$.content[*].item1[*]’    返回key=content的list的key=item1的list的所有内容

官方文档

https://dev.mysql.com/doc/refman/5.7/en/json.html
 

. . .

相关推荐

额外说明

Xamarin.Android 1.即时网络监控-ConnectivityManager.NetworkCallback

1. 编译版本 2. 新建NetworkCallbackImpl类继承ConnectivityManager.NetworkCallback,并重写OnAvailable、OnLost、OnCapabilitiesChanged三个方法 //NetUti

额外说明

关于飞桨UIE等模型预测推理时间很久的问题分析以及解决,蒸馏剪枝部署问题解决

1.关于飞桨UIE等模型预测推理时间很久的问题分析以及解决 1.1.原因分析 用uie做实体识别,Taskflow预测的时间与schema内的实体类别数量成正比,schema里面有多少个实体类别 实体识别中每次取一个类别作为prompt与原文本拼接作为模

额外说明

RAC:Oracle 11GR2 数据库一键安装

前言 本文将演示如何使用脚本一键安装 Oracle 11GR2 RAC 2 节点数据库的全过程。 安装前准备 在生产环境中,Linux 操作系统和网络一般不是由 DBA 来配置,为了更贴合生产使用,本脚本仅用于安装 Oracle 数据库,请提前安装好 L

额外说明

[Qt 实战小项目] —— C++ Qt 实现鼠标拖动旋转功能

Qt系列教程总目录 文章目录 零、开始的开始 一、实现思路 1. 旋转角度 2. 旋转方向 3. 实现旋转 4. 实现流程 二、完整代码 零、开始的开始 这是律盘,看古琴课程时,老师有一个纸质的,可以查找各弦散按音位,觉得挺好用,便做了一个软件。这里只聊

额外说明

餐中餐(3)Lucene--核心类IndexWriter (Part 2)

文章目录 Abstract Graph: 流程分析: 1.获取索引目录的索引文件锁 2.获取封装后的Directory 3.根据不同的OpenMode执行对应的工作 3.1 create模式下的流程 配置检查 初始化一个新的SegmentInfos对象,

额外说明

【实用 Python 库】使用 XPath 与 lxml 模块在 Python 中高效解析 XML 与 HTML

在今天的信息时代,数据无处不在,从网络爬虫到数据挖掘,从文本处理到数据分析,我们时常需要从结构化文档中提取有用的信息。XPath 是一门强大的查询语言,它可以在 XML 与 HTML 等文档中定位特定的元素与数据。而在 Python 中,lxml 模块为

额外说明

Java——TextField边框美化

┏(ω)=☞ 本专栏的目录(为您提供更好的查询方式)(点这里说不定有你想要的) paintBorder的方法重写,使用的时候直接调用这个类就可以了 这个是my类 package TYZ; import java.awt.*; import javax

额外说明

springboot整合swagger2

springboot整合swagger2: 创建项目省略 添加pom: <!--swagger--> <dependency> <groupId>io.springfox</groupId>

额外说明

Java【代码分享 09】多线程处理List数据核心代码说明(下标越界、数据丢失及效率问题)

1.问题说明 大数据量的List问题处理,多线程分批处理,需要解决的问题: 下标越界。 线程安全。 数据丢失。 private List<Map<String, Object>> dealDataByThreads(List<String> da

额外说明

如何创建WordPress儿童主题(视频)

Are you looking to create a child theme in WordPress? Once you learn the WordPress 基础知识, you probably want to learn how to cust

ads via 小工具