MySQL 8.0 新增 JSON_TABLE
函数的使用
通过 JSON_TABLE
函数,可以将 JSON 文档中的数据提取出来,并以表格的形式返回客户端。
JSON_TABLE(
json_doc,
path COLUMNS (column_list)
) [AS] alias
其中:
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 函数使用
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;
-- 查询结果
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 删除。