MySQL JSON_TABLE() 函数

介绍:JSON_TABLE()函数从一个指定的JSON文档中提取数据并返回一个具有指定列的关系表。

应用:数据库字段以JSON 存储后,实际应用需要对其中一个字段进行查询

语法:JSON_TABLE(json,path COLUMNS(column[,column[,...]]))column:name

实例:

  • 数组分别取值

JSON 数组中有两个对象。

路径表达式 $[*] 则表示数组中的每个元素。

COLUMNS 子句定义了关系表中的 3 个列:

  • id FOR ORDINALITY: 列名为 id,列的内容为从 1 开始的自增序列。
  • x varchar(255) PATH '$.x': 列名为 x,列的内容是对应了对象中的成员 x
  • y INT PATH '$.y':列名为 y,列的内容是对应了对象中的成员 y
select * FROM
    JSON_TABLE(
        '[{"x": "01", "y": 11}, {"x": "02", "y": 22}]',
        '$[*]'
        COLUMNS (
            id FOR ORDINALITY,
            x varchar(255) PATH '$.x',
            y INT PATH '$.y'
        )
    ) AS t;

|id |x  |y  |
|---|---|---|
|1  |01 |11 |
|2  |02 |22 |

  • 直接取值

JSON 数组中有多个对象。

路径表达式 $[*] 则表示数组中的每个元素。

COLUMNS 子句定义了关系表中的 2 个列:

  • id FOR ORDINALITY: 列名为 id,列的内容为从 1 开始的自增序列。
  • x INT PATH '$': 列名为 x,列的内容是对应了对象的值。
select * FROM
    JSON_TABLE(
        '["1","11","111"]',
        '$[*]'
        COLUMNS (
            id FOR ORDINALITY,
            x INT PATH '$'
        )
    ) AS t;

|id |x  |
|---|---|
|1  |1  |
|2  |11 |
|3  |111|

备注:MySQL 8.0之后才能使用,否则执行代码会报错

替代查询方法:select * from table where name like '%"1"%'

参考:MySQL JSON_TABLE() 函数|mysql-目之瞬间

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全新的MySQL视频教程,课程对MySQL的核心知识点进行了大量深入的展开,细致的讲解和总结 较以往的MySQL核心基础课程有更好的优势,是MySQL运维人员 编程人员及相关技术人员的必备学习课程 ├─10、课程:进阶数据类型(上).10、Geohash.mp4 ├─10、课程:进阶数据类型(上).11、JSON数据格式(一).mp4 ├─10、课程:进阶数据类型(上).12、JSON数据格式(二).mp4 ├─10、课程:进阶数据类型(上).1、复杂数据类型及操作.mp4 ├─10、课程:进阶数据类型(上).2、空间.mp4 ├─10、课程:进阶数据类型(上).3、几何形状.mp4 ├─10、课程:进阶数据类型(上).4、Touch.mp4 ├─10、课程:进阶数据类型(上).5、相关的函数.mp4 ├─10、课程:进阶数据类型(上).6、经纬度.mp4 ├─10、课程:进阶数据类型(上).7、数据表达格式.mp4 ├─10、课程:进阶数据类型(上).8、世界地图(一).mp4 ├─10、课程:进阶数据类型(上).9、世界地图(二).mp4 ├─11、课程:进阶数据类型(中).10、窗口图示(二).mp4 ├─11、课程:进阶数据类型(中).11、ROWS vs RANGE.mp4 ├─11、课程:进阶数据类型(中).1、JSON语句讲解(一).mp4 ├─11、课程:进阶数据类型(中).2、JSON语句讲解(二).mp4 ├─11、课程:进阶数据类型(中).3、JSON语句讲解(三).mp4 ├─11、课程:进阶数据类型(中).4、JSON语句讲解(四).mp4 ├─11、课程:进阶数据类型(中).5、JSON语句讲解(五).mp4 ├─11、课程:进阶数据类型(中).6、窗函数(一).mp4 ├─11、课程:进阶数据类型(中).7、窗函数(二).mp4 ├─11、课程:进阶数据类型(中).8、窗函数(三).mp4 ├─11、课程:进阶数据类型(中).9、窗口图示(一).mp4 ├─12、课程:进阶数据类型(下).1、FULL-TEXT(一).mp4 ├─12、课程:进阶数据类型(下).2、FULL-TEXT(二).mp4 ├─12、课程:进阶数据类型(下).3、分词.mp4 ├─12、课程:进阶数据类型(下).4、全文索引代码实现.mp4 ├─12、课程:进阶数据类型(下).5、STOPWORDS.mp4 ├─12、课程:进阶数据类型(下).6、布尔模式.mp4 ├─12、课程:进阶数据类型(下).7、答疑(一).mp4 ├─12、课程:进阶数据类型(下).8、答疑(二).mp4 ├─13、课程:MySQL调优入门.1、MySQL查询过程.mp4 ├─13、课程:MySQL调优入门.2、查询语句的优化.mp4 ├─13、课程:MySQL调优入门.3、案例分析(一).mp4 ├─13、课程:MySQL调优入门.4、案例分析(二).mp4 ├─13、课程:MySQL调优入门.5、案例分析(三).mp4 ├─13、课程:MySQL调优入门.6、水平分区.mp4 ├─13、课程:MySQL调优入门.7、架构上的调整SCALE.mp4 ├─14、课程:基于RDS的维度数据模型.10、案例分析(三).mp4 ├─14、课程:基于RDS的维度数据模型.11、物化视图.mp4 ├─14、课程:基于RDS的维度数据模型.12、商品属性.mp4 ├─14、课程:基于RDS的维度数据模型.13、答疑(一).mp4 ├─14、课程:基于RDS的维度数据模型.14、答疑(二).mp4 ├─14、课程:基于RDS的维度数据模型.15、答疑(三).mp4 ├─14、课程:基于RDS的维度数据模型.16、答疑(四).mp4 ├─14、课程:基于RDS的维度数据模型.17、答疑(五).mp4 ├─14、课程:基于RDS的维度数据模型.18、答疑(六).mp4 ├─14、课程:基于RDS的维度数据模型.1、数据分析的场景.mp4 ├─14、课程:基于RDS的维度数据模型.2、数据分析的特点、各种OLAP的操作.mp4 ├─14、课程:基于RDS的维度数据模型.3、星型模式与OLAP多维数据库.mp4 ├─14、课程:基于RDS的维度数据模型.4、如何设计维度模型.mp4 ├─14、课程:基于RDS的维度数据模型.5、选择业务过程.mp4 ├─14、课程:基于RDS的维度数据模型.6、促销事实.mp4 ├─14、课程:基于RDS的维度数据模型.7、Slowly changing dimension SCD.mp4 ├─14、课程:基于RDS的维度数据模型.8、案例分析(一).mp4 ├─14、课程:基于RDS的维度数据模型.9、案例分析(二).mp4

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值