MySQL JSON_TABLE() 函数

这篇具有很好参考价值的文章主要介绍了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-目之瞬间文章来源地址https://www.toymoban.com/news/detail-635669.html

到了这里,关于MySQL JSON_TABLE() 函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL 中的 JSON_CONTAINS 函数详解

    在处理 MySQL 中的 JSON 数据时,我们经常需要检查一个 JSON 文档是否包含特定的值。这时, JSON_CONTAINS 函数就显得非常有用。 JSON_CONTAINS 是 MySQL 提供的一个 JSON 函数,用于测试一个 JSON 文档是否包含特定的值。如果包含则返回 1,否则返回 0。该函数接受三个参数: target : 待搜

    2024年02月03日
    浏览(42)
  • Flink系列之:Table API Connectors之JSON Format

    JSON Format 能读写 JSON 格式的数据。当前,JSON schema 是从 table schema 中自动推导而得的。 为了使用 Json 格式,使用构建自动化工具(例如 Maven 或 SBT)的项目和带有 SQL JAR 包的 SQL 客户端都需要以下依赖项。 以下是一个利用 Kafka 以及 JSON Format 构建表的例子。 参数 是否必须 默认

    2024年02月02日
    浏览(39)
  • MySQL数据库基础:JSON函数各类操作一文详解

    很多日常业务场景都会用到json文件作为数据存储起来,而mysql5.7以上就提供了存储json的支撑。往常存储json一般都保留在pg库或者是hive库里面,现在mysql有了支持的话基本业务都可以用mysql来实现。现在mysql8.x版本对json字符出处理已经做的非常完善了。现在就让我们来详细了解

    2024年02月04日
    浏览(53)
  • Mysql中的Optimize table命令

    在MySQL中,optimizetable命令用来重新整理(InnoDB MyISAM)表格并优化空间利用。优化后的表更容易被访问,节省了磁盘空间,同时可以加速查询,以达到更好的性能。 OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] … – 如果您已经删除了表的一大部分,或者如果您已经对含有可

    2024年04月12日
    浏览(29)
  • mysql临时表(temporary table)详解

    提示:mysql临时表的创建、使用、作用:1.临时表是一张表,用来临时保存一些数据。它只对创建它的会话可见。当会话结束时,MySQL自动删除临时表(表结构和表数据库),并且临时表不会存进mysql中。2.会话可以创建一个和已有的普通表名字相同的临时表。在这种情况下,该会

    2024年02月13日
    浏览(36)
  • 【MySQL】MySQL 8 的 JSON 新特性详解(1)JSON 数据类型

    你好,我是小雨青年,一名使用MySQL 8 的程序员。 MySQL 8 引入了对 JSON 数据类型的全面支持,并提供了一组内置函数以有效处理 JSON 数据。MySQL 8 中的 JSON 支持的一些关键特性如下: JSON 数据类型:MySQL 8 拥有一个名为 JSON 的新数据类型,可用于在列中存储 JSON 数据。该数据类

    2024年02月02日
    浏览(43)
  • mysql处理json格式的字段,一文搞懂mysql解析json数据

    略。自行百度。 JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。 MySQL 8.0版本中增加了对JSON类型的索引支持。可以使用CREATE INDEX语句创建JSON类型的索引,提高JSON类型数据的查询效率。 存储JSON文档所需的空间与存储

    2024年02月07日
    浏览(53)
  • Flink 读写MySQL数据(DataStream和Table API)

    Flink提供了基于JDBC的方式,可以将读取到的数据写入到MySQL中;本文通过两种方式将数据下入到MySQL数据库,其他的基于JDBC的数据库类似,另外,Table API方式的Catalog指定为Hive Catalog方式,持久化DDL操作。 另外,JDBC 连接器允许使用 JDBC 驱动程序从任何关系数据库读取数据并将

    2023年04月09日
    浏览(45)
  • MySQL一个关于derived table的bug描述与规避

    MySQL对derived table的优化处理与使用限制 同事遇到一个有意思的语句,说一条SQL在MySQL8.0.25版本运行出的结果明显与给定的where条件不符,而在8.0.26版本上是正常的,语句上加了一个无关的用户变量后在8.0.25版本上结果才是正确的,想不通这是怎么回事,这么有意思的事情自然

    2024年02月09日
    浏览(35)
  • 【MySQL系列】使用 ALTER TABLE 语句修改表结构的方法

    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老 导航 檀越剑指大厂系列:全面总

    2024年04月10日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包