首页 >数据库 >mysql教程 >MySQL 的 JSON_TABLE 函数如何将 JSON 数组转换为行?

MySQL 的 JSON_TABLE 函数如何将 JSON 数组转换为行?

Patricia Arquette
Patricia Arquette原创
2024-11-29 05:37:17769浏览

How Can MySQL's JSON_TABLE Function Convert JSON Arrays into Rows?

在 MySQL 中将 JSON 数组转换为行

在 MySQL 5.7 及更早版本中,操作 JSON 可能具有挑战性,尤其是在将 JSON 数组转换为行。然而,在 MySQL 8 中,新的 JSON_TABLE 函数提供了一个简单的解决方案。

JSON_TABLE 函数

JSON_TABLE 函数允许您轻松地从 JSON 文档和映射中提取数据它到关系表模式。要将 JSON 数组转换为行,请使用以下语法:

SELECT *
FROM JSON_TABLE(
  <json_array>,
  "$[*]"
  COLUMNS(
    <column_name> <data_type> PATH "$"
  )
) <table_alias>;

示例

考虑一个 JSON 数组:

[5, 6, 7]

您可以使用 JSON_TABLE 将其转换为表格:

SELECT *
FROM JSON_TABLE(
  '[5, 6, 7]',
  "$[*]"
  COLUMNS(
    Value INT PATH "$"
  )
) data;

输出将be:

| Value |
|---|---|
| 5 |
| 6 |
| 7 |

一般字符串分割

MySQL 缺乏原生的字符串分割功能。但是,您可以使用 JSON_TABLE 来实现类似的结果:

set @delimited = 'a,b,c';

SELECT *
FROM JSON_TABLE(
  CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'),
  "$[*]"
  COLUMNS(
    Value varchar(50) PATH "$"
  )
) data;

这会将分隔字符串拆分为 JSON 数组,然后将其转换为表。

以上是MySQL 的 JSON_TABLE 函数如何将 JSON 数组转换为行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn