首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL 8.0 新增 JSON_TABLE 函数的使用

MySQL 8.0 新增 JSON_TABLE 函数的使用

原创
作者头像
贺春旸的技术博客
发布2024-09-03 10:23:01
发布2024-09-03 10:23:01
1.5K0
举报
文章被收录于专栏:DBA 平台和工具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 函数使用
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档