前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 8.0 新增 JSON_TABLE 函数的使用

MySQL 8.0 新增 JSON_TABLE 函数的使用

原创
作者头像
贺春旸的技术博客
发布2024-09-03 10:23:01
1330
发布2024-09-03 10:23:01
举报
文章被收录于专栏:DBA 平台和工具

MySQL 8.0 新增 JSON_TABLE 函数的使用

通过 JSON_TABLE 函数,可以将 JSON 文档中的数据提取出来,并以表格的形式返回客户端。

基本用法:

代码语言:sql
复制
JSON_TABLE(
    json_doc,
    path COLUMNS (column_list)
) [AS] alias

其中:

  • json_doc 是 JSON 文档(可以是一个 JSON 列或 JSON 字符串)
  • path 是用于选择 JSON 文档中元素的路径表达式
  • column_list 定义了结果表的列

测试用例

代码语言:sql
复制
mysql> select * from people;
+------+---------------------------------------------------+
| id   | info                                              |
+------+---------------------------------------------------+
|    1 | {"age": 25, "city": "Bei Jing", "name": "张三"}   |
|    2 | {"age": 27, "city": "He Bei", "name": "李四"}     |
+------+---------------------------------------------------+
2 rows in set (0.00 sec)

JSON_TABLE 函数使用

代码语言:sql
复制
-- JSON_TABLE 函数使用
SELECT p.id, jt.name, jt.age, jt.city
FROM people p
JOIN JSON_TABLE(
    p.info,
    '$' COLUMNS (
        name VARCHAR(50) PATH '$.name',
        age INT PATH '$.age',
        city VARCHAR(50) PATH '$.city'
    )
) AS jt ON TRUE;
代码语言:sql
复制
-- 查询结果
mysql> -- JSON_TABLE 函数使用
mysql> SELECT p.id, jt.name, jt.age, jt.city
    -> FROM people p
    -> JOIN JSON_TABLE(
    ->     p.info,
    ->     '$' COLUMNS (
    ->         name VARCHAR(50) PATH '$.name',
    ->         age INT PATH '$.age',
    ->         city VARCHAR(50) PATH '$.city'
    ->     )
    -> ) AS jt ON TRUE
    -> ;
+------+--------+------+----------+
| id   | name   | age  | city     |
+------+--------+------+----------+
|    1 | 张三   |   25 | Bei Jing |
|    2 | 李四   |   27 | He Bei   |
+------+--------+------+----------+
2 rows in set (0.00 sec)

总结

JSON_TABLE 函数非常灵活,可以处理复杂的 JSON 结构,包括数组、嵌套对象等。它使得在 SQL 查询中处理 JSON 数据变得更加简单和直观,特别是在需要将 JSON 数据与关系数据结合使用的场景中。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本用法:
  • 测试用例
  • JSON_TABLE 函数使用
  • 总结
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档