MySQL中将JSON数组转换为行

MySQL中将JSON数组转换为行

MySQL中的JSON类型和JSON函数是MySQL 5.7版本后添加的新特性,提供了在数据库中存储、查询和操作JSON数据的功能。其中,将JSON数组转换为行是常用的一种操作方式。

比如,我们有如下的JSON数组数据存储在名为“json_table”的表的“json_col”字段中:

[
    {"name": "Jack", "age": 20},
    {"name": "Lucy", "age": 25},
    {"name": "Tom", "age": 23}
]
JSON

现在我们要将这个JSON数组转换为“name”和“age”字段的行记录。可以使用MySQL中的JSON函数来实现。

SELECT
    j->>'.name' AS name,
    j->>'.age' AS age
FROM json_table, JSON_TABLE(json_table.json_col, '[*]' COLUMNS(j JSON PATH '')) as json_array
WHERE json_table.id = 1
SQL

上述查询语句中,JSON_TABLE函数用于展开JSON数组,将每个元素展开为一行数据,并取出“name”和“age”字段。其中,“[]”是JSON数组的路径表达式,“COLUMNS(jJSONPATH[*]”是JSON数组的路径表达式,“COLUMNS(j JSON PATH ‘‘)”表示将数组元素的值映射到“j”列,并使用“JSON PATH”指定值的路径,即“$”表示当前元素的路径。

执行以上查询语句,得到如下结果:

name | age
-----|----
Jack | 20
Lucy | 25
Tom  | 23
Mysql

阅读更多:MySQL 教程

总结

MySQL中使用JSON函数操作JSON数据的能力为我们提供了更为灵活、高效的处理方式。将JSON数组转换为行的实现方式也是典型的一种,可以根据实际需求进行使用和扩展。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册