首页  >  文章  >  数据库  >  如何在 MySQL 中将 JSON 数组转换为行?

如何在 MySQL 中将 JSON 数组转换为行?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-26 02:54:09339浏览

How to Convert a JSON Array into Rows in MySQL?

将 MySQL 中的 JSON 数组转换为行

将 JSON 数组转换为 MySQL 表中的单独行可能是一个挑战。但是,可以使用各种技术来实现此操作,包括以下技术:

方法 1:JSON_EXTRACT 和 Union

此方法涉及使用 JSON_EXTRACT 函数提取单个数组元素并使用 UNION 运算符将它们组合起来。举个例子:

SET @j = '[1, 2, 3]';

SELECT JSON_EXTRACT(@j, '$[0]') AS value
UNION
SELECT JSON_EXTRACT(@j, '$[1]') AS value
UNION
SELECT JSON_EXTRACT(@j, '$[2]') AS value;

方法二:JSON_TABLE (MySQL 8 )

MySQL 8 引入了 JSON_TABLE 函数,它允许你创建一个基于JSON 文档。这提供了一种将 JSON 数组转换为行的简单方法。下面是一个示例:

SET @j = '[5, 6, 7]';

SELECT *
FROM JSON_TABLE(
  @j,
  "$[*]"
  COLUMNS(
    Value INT PATH "$"
  )
) data;

方法 3:字符串拆分和 JSON_TABLE

此技术利用了 MySQL 缺乏内置字符串拆分功能的事实。通过将分隔字符串转换为 JSON 字符串,您可以使用 JSON_TABLE 来实现拆分功能。

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

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

这些方法为将 JSON 数组转换为 MySQL 中的单独行提供了通用的解决方案。虽然 MySQL 5.7 可能需要更复杂的方法,但 MySQL 8 引入了更高效的选项,例如 JSON_TABLE,为数据操作开辟了新的可能性。

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

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